將[Authorize(Roles =「admin」)]放在視圖上,它在用戶重定向時起作用,但是,儘管它們已經登錄,但它們總是被重定向到登錄視圖。 我應該如何更改這是爲了進入一個錯誤頁面或類似的東西?MVC授權角色轉到登錄視圖?
回答
,你可以創建一個這樣
public class CustomAuthorize : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
base.HandleUnauthorizedRequest(filterContext);
}
else
{
filterContext.Result = new RedirectToRouteResult(new
RouteValueDictionary(new { controller = "Home", action = "UnAuthorized" }));
}
}
}
定製的授權屬性,並使用它像這樣
[CustomAuthorize(Roles="admin")]
希望這有助於
我從字面上把我的答案同時作爲這個,但它基本上是我以後所以我會標記你的答案是正確的。 – user1166905
出於興趣,你會推薦使用RedirectToRouteResult而不是RedirectResult?如果是這樣,爲什 – user1166905
我不是專家,但由於硬編碼路徑,我在重新分解期間遇到'RedirectResult'問題。 –
而不是重複提供我所用代碼的問題:Prevent FormsAuthenticationModule of intercepting ASP.NET Web API responses並作相應修改:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class AuthorizeCustom : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.IsAuthenticated)
{
filterContext.Result = new RedirectResult("/Error/Unauthorized");
}
else
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.HttpContext.Response.SuppressFormsAuthenticationRedirect = true;
}
base.HandleUnauthorizedRequest(filterContext);
}
}
}
然後,爲「/ Error/Unauthorized」路由創建一個視圖,並將屬性[Authorize]更改爲[AuthorizeCustom]。現在,未經授權的人員將被重定向爲按預期登錄,而不在角色中的人員將被重定向到自定義視圖。
- 1. MVC Azure AD授權角色
- 2. MVC 3 ASP.NET角色 - 授權屬性
- 3. MVC 3授權自定義角色
- 4. 帶有CRUD角色的ASP.NET MVC授權
- 5. asp.net的MVC角色授權不工作
- 6. 登錄Web角色MVC
- 7. MVC 5 - 角色授權 - 自定義未授權頁面
- 8. 授權角色和權限
- 9. 用於角度授權的登錄servlet
- 10. MVC授權 - 多個登錄頁面
- 11. 在asp.net MVC中授權登錄URL 3
- 12. MVC 4授權和登錄使用
- 13. .NET身份驗證授權角色登錄redirct returnURL混淆
- 14. MVC單元測試[授權(角色=「角色」)]
- 15. web.config授權角色轉義字符
- 16. Twitter授權登錄
- 17. 用戶角色和授權
- 18. 授權角色WebAPI oauth owin
- 19. 基於角色的授權
- 20. 基於角色的授權
- 21. 授權角色組合
- 22. 授權角色不工作
- 23. MVC2從SQL授權角色
- 24. 用戶被授權登錄
- 25. Facebook的授權及登錄
- 26. MVC 3 - 視圖中的授權
- 27. 腳本服務器角色的授予到SQL Server登錄
- 28. 當用戶登錄時授予授權
- 29. MVC配置授權角色的價值和強類型的角色
- 30. ASP.NET登錄角色?
什麼時候該重定向發生? –
嗯,我只是把控制器視圖上面的授權,我希望只提供給某些角色,所以無論何時該網址真的被訪問。目前去那條路線,而不是在角色返回登錄視圖? – user1166905
可能的重複[如何在用戶不在授權角色中時提供未授權頁面?](http://stackoverflow.com/questions/2322366/how-do-i-serve-up-an-unauthorized -page-when-a-user-is-in-the-the-authorized-role- – CodeCaster