Asp.net 将用户标识从表示层带到应用层
对于我们的n层应用程序,我们正在寻找一种从表示层到应用层使用标识的方法。我们的应用程序是一个经典的三层应用程序,具有以下层:Asp.net 将用户标识从表示层带到应用层,asp.net,wcf,identity,wif,n-tier-architecture,Asp.net,Wcf,Identity,Wif,N Tier Architecture,对于我们的n层应用程序,我们正在寻找一种从表示层到应用层使用标识的方法。我们的应用程序是一个经典的三层应用程序,具有以下层: UI-表示层 应用程序/WCF层 数据库层 应用层不暴露于internet,表示层可以通过本地网络连接。我们的问题是,用户登录到表示层,我们希望表示层将用户身份传递给应用层。如何做到这一点?使用基于声明的身份验证是否可以做到这一点?我们目前正在寻找在STS服务中实现IWSTrust13SyncContract,但似乎用户浏览器必须能够访问应用层。有人能给我一些建议如何
- UI-表示层
- 应用程序/WCF层
- 数据库层
应用层不暴露于internet,表示层可以通过本地网络连接。我们的问题是,用户登录到表示层,我们希望表示层将用户身份传递给应用层。如何做到这一点?使用基于声明的身份验证是否可以做到这一点?我们目前正在寻找在STS服务中实现
IWSTrust13SyncContract
,但似乎用户浏览器必须能够访问应用层。有人能给我一些建议如何处理这个问题吗 创建一个类似于用户标识的类,并在表示层中设置值。并将此CALS的引用传递给您的应用层。您可以使用模拟/委派或受信任的子系统模型-请参阅 模拟/委派最适用于Windows身份验证,但即使如此,也可能需要信任表示层服务器进行委派。在此模型中,应用层对最终用户进行身份验证和授权 使用更常见的受信任子系统模型:
- 表示层对最终用户进行身份验证
- 应用层通常希望对表示层进行身份验证,例如使用Windows身份验证并仅接受来自运行表示层的服务帐户的请求,或者使用其他身份验证方法,例如使用客户端证书,仅接受来自特定IP地址的请求
- 应用层信任表示层授权最终用户
- 表示层通过Facade调用应用层。此外观代表应用层执行所有必需的授权
- 表示层将最终用户的身份传递给应用层。这可以是带内的(使用附加参数污染您的操作契约),也可以是带外的,例如在自定义SOAP头中。如果使用SOAP头,则可以通过使用行为客户端注入头,使用服务器端处理头,使其对使用WCF的应用程序代码透明 无论是带内还是带外,您都信任表示层对传递给应用层的标识进行身份验证。因此,对表示层进行身份验证非常重要,这取决于您的环境,以防止中间人攻击,例如使用HTTPS