asp.net中的MembershipProvider

时间:2009-09-18 07:21:04

标签: asp.net authentication

MembershipProvider真正用于什么?我需要它吗?使用表单身份验证时,我从未在配置文件中指定任何成员资格提供程序,我一直通过调用FormsAuthentication.SetAuthCookie来验证用户身份。昨天我一直在阅读很多关于它的内容,我无法弄清楚为什么要使用它?

3 个答案:

答案 0 :(得分:3)

MembershipProvider首先是一个可插拔的标准化存储库。如果您将身份验证基于MembershipProvider,则可以稍后与其他提供商进行交换,而不会对您的网站进行任何更改。此外,标准组件(Login,LoginView,LoginStatus,LoginName和PasswordRecovery控件)支持它,并且可以通过ASP.NET管理页面进行管理。

答案 1 :(得分:3)

Tor已经说过,这是一个非常方便的事情。

如果您使用默认控件进行用户管理/登录/密码重置等,那么您只需更改web.config设置,您的用户就可以使用其他机制进行身份验证。

有AD,SQL Server for ADAM,Federrated Login等提供商。开发内部网应用程序时并不重要,因为您很可能依赖于NTLM或kerberos,但是当您发布到Web时它会非常方便。

此提供程序还有第二个组件,roleprovider,它是另一个可用于处理应用程序中角色的存储库

答案 2 :(得分:2)

如果您不使用内置控件,我认为它没用。

你可以做的只是实现一个成员资格提供程序,所有方法都抛出NotImplementedException,并在找到实际使用的方法时实现。 如果我没记错的话,它只有2或3个。

RoleProvider更有用,我使用仅实现GetRolesForUser方法的提供程序,因此我可以使用内置支持进行基于角色的授权。