我有一个3"层"的应用程序,第一个"数据层",第二个"businesslayer",第三个是asp.net mvc网站.我正在尝试以正确的方式添加表单身份验证.
我应该以某种方式配置它以使用业务层?获取/添加/更新作为身份验证一部分的用户?
我应该在哪个项目中添加用户验证?
/ M
身份验证应始终发生在应用程序边界,因为使用相同域模型的不同应用程序可能具有不同的身份验证需求.如果您决定将域模型公开为Web服务,则表单身份验证可能不是最佳的身份验证机制.
在ASP.NET MVC中,您可以使用Visual Studio中的默认项目模板轻松实现UserName/Password身份验证,但是一旦用户通过身份验证,您应该设置Thread.CurrentPrincipal.
通常,IPrincipal是在.NET中建模用户上下文的标准基础.例如,HttpContext.User是一个IPrincipal.
在您的域模型和数据访问模块中,您可以使用Thread.CurrentPrincipal来实现授权逻辑.这允许您彼此独立地更改身份验证和授权.
如果您需要在域模型中使用更丰富的用户概念,则可以让User类实现IPrincipal.
| 归档时间: |
|
| 查看次数: |
1719 次 |
| 最近记录: |