asp.net用户授权和认证

时间:2011-09-05 21:02:01

标签: asp.net authentication asp.net-membership authorization

我想写一个Web应用程序,我想弄清楚到目前为止我读到的有关用户授权和身份验证的可能性是什么:

  1. 使用asp.net会员和角色管理
  2. 使用oauth或openId控件
  3. 实现自己这部分(这看起来很辛苦,我不确定它是否值得)
  4. 您的建议是什么,或者您是否可以链接到有关此问题的更多信息

    谢谢

    多伦

1 个答案:

答案 0 :(得分:0)

使用ASP.NET MembershipProviderProfileProviderRoleProvider是IMO的最佳解决方案,因为它使您的应用程序可插入,框架一起工作,它强迫一个很好的抽象层。

我不建议使用静态类来访问提供者,我总是通过DI直接依赖提供者并保持可测试性。

var service = new UserService(Membership.Provider);
service.MyUserAction("myusername");

// rather than

var user = Membership.GetUser("myusername");
...

OAuthOpenId可用于补充和扩展基本表单实现,允许用户通过其他提供程序登录,但随后映射到本地用户,以便您可以存储其他元数据。

您实际上没有 使用提供程序来利用ASP.NET身份验证,通过FormsAuthentication.SetAuthCookie使用身份验证Cookie是后续身份验证的一个很好的快捷方式

滚动自己是一个坏主意。构建它的机制不是万无一失的,但它是一个坚实的基础实现,可以避免大多数人的基本陷阱。永远不要将Session用于任何authenticationauthorisation逻辑,因为它非常不安全。