我正在使用ASP.NET Web API。我真的很喜歡添加屬性來指定訪問權限級別這樣的API控制器的能力:如何使ASP.NET Web API適當地響應403或401?
[Authorize]
public IEnumerable<Activity> Get()
到目前爲止好,但是當我使用角色的概念打散。
[Authorize(Roles = "Manager")]
public IEnumerable<Activity> Get()
我的用戶可能登錄到系統而回,然後在某個時候,他們打一種資源,是「禁」到他們。用戶嘗試重新登錄沒有任何意義。由於其合法帳戶無法訪問該網址。但是目前他們得到401(未經授權)而不是403(禁止),就好像他們使用錯誤的帳戶登錄一樣。但用戶只有一個帳戶,並且用戶不希望用戶請求屬於他人的帳戶。
有沒有其他人處理過這個問題?有誰知道如何解決這一問題?我非常樂意編寫代碼來解決這個問題,但是我目前處於一個無法開始的狀態。
修改AuthorizeAttribue就是答案。因爲我使用的是WebAPI,所以這個特殊的例子是修改System.Web.Mvc而不是System.Web.Http。 –
我以爲你想做一個自定義屬性發回你喜歡的Http狀態代碼 –
這就是我所做的,我從System.Web.Http.AuthorizeAtribute繼承。不是從System.Web.Mvc.AuthorizeAtribute這是你指出的文章引用。 –