当我创建自定义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>
答案 0 :(得分:0)
我使用自定义配置属性修复了这个问题。我需要用户必须配置要在web.config中授权的角色的配置属性。
{{1}}