从ASP.NET2.0中,提供了各类的provider,有membership,role,profile等的,可以很方便地实现如角色,用户等管理,甚至不用自己写代码了。这些provider在ASP.NET 4.0、ASP.NET MVC中同样适用。
定义 ASP.NET 为使用自定义成员资格提供程序提供成员资格服务而实现的协定。
继承层次结构:
System.Object
System.Configuration.Provider.ProviderBase
System.Web.Security.MembershipProvider
System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider
System.Web.ClientServices.Providers.ClientWindowsAuthenticationMembershipProvider
System.Web.Security.ActiveDirectoryMembershipProvider
System.Web.Security.SqlMembershipProvider
ASP.NET 成员资格专为使您可以轻松地将多个不同的成员资格提供程序用于您的 ASP.NET 应用程序而设计。 您可以使用 .NET Framework 中包含的成员资格提供程序,也可以实现自己的提供程序。
在实现自定义成员资格提供程序时,需要继承 MembershipProvider 抽象类。
创建自定义成员资格提供程序主要有两个原因:
MembershipProvider 抽象类从 ProviderBase 抽象类中继承。 MembershipProvider 实现还必须实现 ProviderBase 所需的成员。
定义 ASP.NET 为使用自定义角色提供程序提供角色管理服务而实现的协定。
继承层次结构:
System.Object
System.Configuration.Provider.ProviderBase
System.Web.Security.RoleProvider
System.Web.ClientServices.Providers.ClientRoleProvider
System.Web.Security.AuthorizationStoreRoleProvider
System.Web.Security.SqlRoleProvider
System.Web.Security.WindowsTokenRoleProvider
ASP.NET 角色管理旨在使您可以轻松地将多个不同的角色提供程序用于您的 ASP.NET 应用程序。 您可以使用 .NET Framework 附带的角色提供程序,也可以实现自己的提供程序。
实现自定义角色提供程序时,需要继承 RoleProvider 抽象类。
主要有两个原因需要创建自定义角色提供程序:
定义 ASP.NET 为使用自定义配置文件提供程序提供配置文件服务而实现的协定。
继承层次结构:
System.Object
System.Configuration.Provider.ProviderBase
System.Configuration.SettingsProvider
System.Web.Profile.ProfileProvider
System.Web.Profile.SqlProfileProvider
ASP.NET 配置文件提供对用户特定属性的持久性存储和检索。 配置文件属性值和信息按照由 ProfileProvider 实现确定的方式存储在数据源中。 您可以使用 .NET Framework 附带的配置文件提供程序(由派生自 ProfileProvider 抽象类的类表示),也可以通过创建派生自 ProfileProvider 的新类来实现自己的提供程序。
创建自定义配置文件提供程序有两个主要原因:
ProfileProvider 抽象类继承自 SettingsProvider 抽象类,后者继承自 ProviderBase 抽象类。 实现 ProfileProvider 的类也必须实现 SettingsProvider 和 ProviderBase 抽象类的必要成员。 有关实现配置文件提供程序的更多信息,请参见 实现配置文件提供程序。
微软提供了支持SqlServer的MembershipProvider、RoleProvider、ProfileProvider的实现。
MVCQuick中使用自己开发的存储库、IoC容器、日志管理器来实现MembershipProvider、RoleProvider、ProfileProvider,从而使ASP.NET应用可以支持多种数据,提高应用的伸缩性、灵活性。