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)
{

特别是,我感兴趣的是,数据库方数据模型模式/实践可以用于促进特定用户的授权和身份验证,而不具有配置或代码中定义的角色等。我是不是错过了一些我应该知道/应该注意的事情?

apt.net成员资格提供程序未使用固定配置

一种方法是创建一个中间表Group,其中Users分配给GroupsGroups分配给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数据模型时动态更改。