0

我想實現我的自定義授權屬性,繼承我的項目中的system.web.http.authorizeAttribute 我有一個web api mvc 4模板和mvc4互聯網應用程序模板 以Windows身份驗證作爲客戶端。我在web api控制器中有一些方法,我試圖不通過身份驗證的用戶發送請求 作爲交換,如果他點擊具有自定義屬性的按鈕,401應該返回。並且如果他沒有被認證,客戶端不應該看到沒有被授權看到的東西我正試圖創建自定義授權屬性在我的網絡api mvc 4應用程序在visual basic

請幫助一些代碼示例!

+1

請告訴我們你試過的東西,告訴我們你卡在哪裏。你的解決方案在做什麼,你想要做什麼? – 2013-02-15 14:40:25

回答

2

要創建派生自System.Web.Http.AuthorizeAttribute的自定義AuthorizeAttribute,您應該重寫IsAuthorized()方法。它非常簡單,如下所示。

public class MyAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool IsAuthorized(HttpActionContext actionContext) 
    { 
     // Do some condition check here 

     // Return the result of the condition check 
     return isAuthenticated; 
    } 
} 

現在將[MyAuthorizeAttribute]屬性添加到要保護的方法中。這將導致401返回所有未經身份驗證的請求到這些方法。

更好的方法是將[MyAuthorizeAttribute]添加到控制器,並將[AllowAnonymous]屬性添加到不需要驗證的方法。

+0

你如何使用這個自定義角色? – 2015-03-31 16:49:39

+0

@LeandroTupone根據需求使用不同的自定義角色。您可以爲每個角色創建自定義授權屬性,或者使授權屬性將字符串列表(授權角色)作爲參數。 – 2015-11-10 01:09:53