ASP.NET Security Provider实现(一)ASP.NET Provider

ASP.NET Provider

从ASP.NET2.0中,提供了各类的provider,有membership,role,profile等的,可以很方便地实现如角色,用户等管理,甚至不用自己写代码了。这些provider在ASP.NET 4.0、ASP.NET MVC中同样适用。

 

System.Web.Security.MembershipProvider类

定义 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 抽象类。

 

创建自定义成员资格提供程序主要有两个原因:

  • 需要将成员资格信息存储在一个 .NET Framework 中附带的成员资格提供程序所不支持的数据源中,如 FoxPro 数据库、Oracle 数据库或其他数据源。
  • 需要使用不同于 .NET Framework 附带的提供程序所使用的数据库架构来管理成员资格信息。 一个常见的示例是公司或网站的 SQL Server 数据库中已有的成员资格数据。

MembershipProvider 抽象类从 ProviderBase 抽象类中继承。 MembershipProvider 实现还必须实现 ProviderBase 所需的成员。


System.Web.Security.RoleProvider类

定义 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 抽象类。

 

主要有两个原因需要创建自定义角色提供程序:

  • 您需要将角色信息存储在 .NET Framework 附带的角色提供程序不支持的数据源中,例如,FoxPro 数据库、Oracle 数据库或其他数据源。
  • 需要使用不同于 .NET Framework 包含的提供程序所使用的数据库架构来管理角色信息。 一个常见的例子就是公司网络或网站的 SQL Server 数据库中已经存在的角色数据。  

System.Web.Profile.ProfileProvider类

定义 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 的新类来实现自己的提供程序。

创建自定义配置文件提供程序有两个主要原因:

  • 您需要将配置文件信息存储在 .NET Framework 附带的配置文件提供程序不支持的数据源中,例如,FoxPro 数据库、Oracle 数据库或其他数据存储。
  • 您需要使用与 .NET Framework 附带的提供程序所用的数据库架构不同的数据库架构来管理配置文件信息。 例如,公司网络或网站的 SQL Server 数据库中已经存在的用户数据。

ProfileProvider 抽象类继承自 SettingsProvider 抽象类,后者继承自 ProviderBase 抽象类。 实现 ProfileProvider 的类也必须实现 SettingsProvider 和 ProviderBase 抽象类的必要成员。 有关实现配置文件提供程序的更多信息,请参见 实现配置文件提供程序。

 

MVCQuick的 Provider

 微软提供了支持SqlServer的MembershipProvider、RoleProvider、ProfileProvider的实现。

MVCQuick中使用自己开发的存储库、IoC容器、日志管理器来实现MembershipProvider、RoleProvider、ProfileProvider,从而使ASP.NET应用可以支持多种数据,提高应用的伸缩性、灵活性。

源代码下载:http://mvcquick.codeplex.com/  

posted @ 2011-10-18 08:57  GuYoung  阅读(1629)  评论(6编辑  收藏  举报