我一直在尋找這個問題的解決方案很長一段時間,但不幸的是還沒有找到任何漂亮和優雅的方式來處理它。MVC 6區域和多個登錄頁面重定向
下面是詳細信息:
我的MVC 6應用程序的使用領域。每個區域具有基於標準的出存儲在SQL Server中使用用戶帳戶的盒子Web應用程序模板的
認證的控制器,視圖等單獨的目錄
我想實現的是:
- 當用戶輸入/ AREAA /受限/頁那麼他將被重定向到/ AREAA /帳號/登錄
- 當用戶輸入/ AreaB /受限/頁那麼他將被重定向到/ AreaB /帳號/登錄等。 ..
即使我可以改變斯塔納德登錄頁面,從「/帳號/登錄」重定向到不同的是這樣的:
services.Configure<IdentityOptions>(options=> { options.Cookies.ApplicationCookie.LoginPath = new Microsoft.AspNet.Http.PathString("/HardcodedAreaName/Account/Login"); });
我不能夠重定向到不同的動作/登錄每個區域的頁面。
此前MVC 6我能夠使用AuthorizeAttribute與URL參數:
public class CustomAuthorization : AuthorizeAttribute
{
public string Url { get; set; }
// redirect to login page with the original url as parameter.
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectResult(Url + "?returnUrl=" + filterContext.HttpContext.Request.Url.PathAndQuery);
}
}
,然後通過裝飾每個控制器經過區相關網址:
[CustomAuthorization(Url = "/Admin/Account/Login"]
public class AdminAreaController : Controller
{ ...
但它不工作了:(
你有沒有結束得到這個工作?由於'services'不可用,您是如何將這些更改放在'Configure'方法中的? –