2012-07-13 119 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