【问题标题】:asp.net user Authorization and Authentication [closed]asp.net 用户授权和身份验证
【发布时间】:2011-09-05 21:02:00
【问题描述】:
我想编写一个 Web 应用程序,我正在尝试找出我目前所读到的关于用户授权和身份验证的可能性:
- 使用 asp.net 成员资格和角色管理
- 使用 oauth 或 openId 控件
- 自己实现这部分(这看起来很辛苦,我不确定它是否值得)
您有什么建议,或者您是否可以链接到有关此问题的更多信息
谢谢
多伦
【问题讨论】:
标签:
asp.net
authentication
asp.net-membership
authorization
【解决方案1】:
使用 ASP.NET MembershipProvider、ProfileProvider 和 RoleProvider 是 IMO 的最佳解决方案,因为它使您的应用程序可插入,与框架一起工作,并且它强制一个很好的层抽象的。
我不建议使用静态类来访问提供者,我总是会直接通过 DI 依赖于提供者并保持可测试性。
var service = new UserService(Membership.Provider);
service.MyUserAction("myusername");
// rather than
var user = Membership.GetUser("myusername");
...
OAuth 或OpenId 可用于补充和扩展基本表单实现,允许用户通过其他提供程序登录,然后映射到本地用户,以便您可以存储额外的元数据。
您真的必须使用提供程序来利用ASP.NET 身份验证,通过FormsAuthentication.SetAuthCookie 使用身份验证cookie 是一个很好的后身份验证快捷方式。
自己动手是个坏主意。内置的 it 机制并不是万无一失的,但它是一个可靠的基础实现,可以避免大多数人容易陷入的基本陷阱。切勿将Session 用于任何authentication 或authorisation 逻辑,因为它非常不安全。