apt.net成员资格提供程序未使用固定配置
本文关键字:未使用 程序 配置 net 成员 apt | 更新日期: 2023-09-27 18:00:16
在成员资格提供程序中,有一些机制可以使用web.config文件在页面级别提供身份验证和授权,并使用decorator为方法提供保护。
我对使用这个asp.net还很陌生http://msdn.microsoft.com/en-us/library/yh26yfzy(v=VS.90).aspx
我的问题是,有没有一种方法可以不将这些文件和代码存储在.config文件和代码中,而是将它们存储在sql数据库中,这样就可以管理管理,以允许以某种动态方式实现多个"角色"和安全性?
我的意思是:
web.config文件:
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
'Windows'Microsoft.Net'Framework'v2.x'Config
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<authorization>
<allow roles="Administrators" />
<deny users="*"/>
</authorization>
</system.web>
</configuration>
示例剪辑的方法装饰:
[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
[PrincipalPermission(SecurityAction.Demand, Role = "Supervisors")]
protected void UserGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
特别是,我感兴趣的是,数据库方数据模型模式/实践可以用于促进特定用户的授权和身份验证,而不具有配置或代码中定义的角色等。我是不是错过了一些我应该知道/应该注意的事情?
一种方法是创建一个中间表Group
,其中Users
分配给Groups
,Groups
分配给Roles
。
因此,您的multiple roles
要求将转换为multiple groups
。
[PrincipalPermission(SecurityAction.Demand, Role = "SingleRole")]
protected void UserGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
您必须编写一个自定义的RoleProvider
来实现这一点。
您发布的示例是授权数据。两者都定义了特定角色对asp.net资源的访问级别。因此,您真正要问的是,是否有一种方法可以在ASP.NET中以基于SQL的方式配置授权,这样您就可以在不直接修改源或配置的情况下更改角色对SQL中的内容的访问权限。
我不知道有什么方法可以直接做到这一点,但我可以建议将您自己在SQL中的角色/组结构插入到内置的角色结构中,这样ASP.NET角色就可以定义资源和访问级别,并且SQL组/角色可以在您描述和遵循Party数据模型时动态更改。