我想写一个Web应用程序,我想弄清楚到目前为止我读到的有关用户授权和身份验证的可能性是什么:
您的建议是什么,或者您是否可以链接到有关此问题的更多信息
谢谢
多伦
答案 0 :(得分:0)
使用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是后续身份验证的一个很好的快捷方式
滚动自己是一个坏主意。构建它的机制不是万无一失的,但它是一个坚实的基础实现,可以避免大多数人的基本陷阱。永远不要将Session
用于任何authentication
或authorisation
逻辑,因为它非常不安全。