我在構建基於OWIN
的身份驗證的基於ASP.NET MVC 5
的網站。我在管理員面板的應用程序中創建了一個新的Area
。我想有一個不同於普通用戶的登錄頁面。ASP.NET MVC 5 OWIN區域身份驗證
例如,當我去http://site/admin/home/index
它應該檢查授權並重定向到http://site/admin/account/login
,而不是去站點用戶登錄頁面。
我已經嘗試執行自定義Authorize
屬性。不過,我不知何故覺得這不是正確的做法。
有人可以建議一個更好或更正確的解決方案嗎?
編輯:自定義屬性實現
public class AuthorizeAreaAttribute : AuthorizeAttribute
{
public string Url { get; set; }
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.HttpContext.Response.Redirect(Url);
filterContext.HttpContext.Response.End();
}
base.OnAuthorization(filterContext);
}
}
爲什麼你認爲這不是一個很好的解決方案來通過自定義的授權屬性? – tire0011 2015-04-04 09:08:49
@ tire0011,當我使用自定義屬性時,碰巧看到一個內部異常被拋出'Headers has already sent!'。 – 2015-04-04 09:18:56
你可以發佈自定義屬性的代碼嗎? – tire0011 2015-04-04 09:33:58