2012-07-13 121 views
2

制作自定义[Authorize]属性时是否有办法捕获正在请求的角色?自定义授权属性catch请求角色

因此,在[Auth(Roles = "IgnoreAuth")]的情况下,有没有办法在自定义Auth内部以某种方式捕获"IgnoreAuth"

+0

只需检查Roles.GetRolesForUser(User.Identity.Name) – 2012-07-13 15:34:30

+0

@RamanZhylich我不想为用户获取角色......我需要角色被请求。 – Jared 2012-07-13 16:08:26

+0

*您被请求的*角色*? – VJAI 2012-07-13 16:44:36

回答

1

角色位于基本的AuthorizeAttribute类中。所以,你可以简单地从您的自定义验证访问它是这样的:

public class AuthAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     var roles = this.Roles; 
    } 
} 

只是为了澄清,只要你做的[验证(角色=“IgnoreAuth”),你只是设置在AuthorizeAttribute角色属性。

+0

这会为我提供已登录用户的角色,还是会为我提供在请求时主动检查的角色? – Jared 2012-07-13 16:12:27

+0

它会给你任何你通过它,这将是“IgnoreAuth”在你的情况。 – 2012-07-13 16:21:05

+0

太棒了,谢谢! – Jared 2012-07-13 16:37:18