0
我非常接近讓這件事情正確,但仍然缺少一件事。在MVC中正確授權重定向4 AuthorizeAttribute - 隱藏未授權的菜單標籤
在常規情況下,當授權失敗,這樣的事情發生了:
filterContext.Result = new HttpUnauthorizedResult();
這個自動的防止未經授權的MVC菜單選項卡從渲染(因爲AuthorizeAttribute被每一個指向授權資源基本選項卡)。
這個按預期工作。不過,我想這樣做:
protected override void HandleUnauthorizedRequest(AuthorizationContext ctx) {
ctx.Result = new ViewResult{ ViewName = "Unauthorized"};
ctx.HttpContext.Response.StatusCode = 401;
這說明共享未經授權的視圖(同時保持原來的網址,以便其明確什麼是未經授權的)
再次這部作品,接受部分隱藏未授權的菜單選項卡。
據我可以告訴看看source for HttpUnhandledResult它所做的全部工作是將StatusCode設置爲401,我也將設置我的分片視圖作爲結果後進行。
我的執行然而,未授權的標籤仍然顯示,但我可以在授權他們失敗日誌中看到..
我使用的劍道菜單(Telerik的)..