-1

我正在使用AuthorizeAttributes. 有没有办法自己实例化这些类?

目前我有一个AuthorizedAdmin和一个IsAdmin类也是如此。所以理想情况下IsAdmin应该使用这个AuthorizedAdmin类。有没有办法做到这一点?

我问是因为这AuthorizedAdmin真的很简单:

[AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = true)]
public class AuthorizedAdmin : AuthorizeAttribute
{
    public AuthorizedAdmin()
    {
        Users = ConfigurationManager.AppSettings["ADMIN_USERS"];
        Roles = ConfigurationManager.AppSettings["ADMIN_GROUPS"];
    }
}

另一方面,IsAdmin该类更复杂并且功能重复。

谢谢

4

2 回答 2

2

为什么需要IsAdmin?为什么不只调用一个方法GetAdminRole()来从您的角色字符串返回AppSettings然后使用User.IsInRole(GetAdminRole())

然后你也可以GetAdminRole()在你的中使用AuthorizedAdminAttribute

于 2012-04-03T15:50:28.947 回答
1

当然,您可以实例化AuthorizeAdmin并调用OnAuthorization它。使用它会很混乱AuthorizationContext。为什么不把它翻过来……把你的业务逻辑放进去IsAdminAuthorizedAdmin使用它?

于 2012-04-03T15:46:07.983 回答