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应用可以支持多种数据,提高应用的伸缩性、灵活性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器