自定义AuthorizeAttribute授权角色未退出时

时间:2015-11-08 22:59:25

标签: asp.net-mvc

当我创建自定义AuthorizeAttribute以从web.config文件获取我的角色时,用户在角色不存在时被授权。

我添加了一个不存在的角色:

[AuthorizeDynamic("ddd")]

如果角色不在web.config文件中,我如何阻止用户获得授权?

AuthorizeAttribute

public class AuthorizeDynamicAttribute : AuthorizeAttribute
{

    public AuthorizeDynamicAttribute(params string[] RoleKeys)
    {
        List<string> Roles = new List<string>(RoleKeys.Length);

        var AllRoles = (NameValueCollection)ConfigurationManager.GetSection("Roles");
        foreach (var Key in RoleKeys)
        {
            Roles.Add(AllRoles[Key]);
        }

        this.Roles = string.Join(",", Roles);
    }
}

web.config文件

<Roles>
  <add key="Administrator" value="Domain\Administrators" />
  <add key="Employee" value="Domain\IIS_IUSRS" />
</Roles>

1 个答案:

答案 0 :(得分:0)

我使用自定义配置属性修复了这个问题。我需要用户必须配置要在web.config中授权的角色的配置属性。

{{1}}