Dot-Net

為不同的 ASP.NET MVC 3 區域提供不同的登錄頁面

  • May 6, 2011

我可以為不同的 ASP .NET MVC3 區域設置不同的登錄 URL 嗎?

例如,我想為管理員和數據輸入操作員提供不同的登錄頁面。

我在每個區域的視圖部分看到一個 web.config,我嘗試過這樣做:

<authentication mode="Forms">
   <forms loginUrl="~/Administration/Account/LogOn" timeout="2880" />
</authentication>

但它玩得不好。

乾杯。

我不知道 .NET 會為您處理此問題,但您可以創建自定義AuthorizationAttribute

public class CustomAuthorization : AuthorizeAttribute {

 public string Url { get; set; }

 public override void OnAuthorization(AuthorizationContext filterContext) {

   if (!filterContext.HttpContext.User.Identity.IsAuthenticated) {
     filterContext.HttpContext.Response.Redirect(Url);
   }
   base.OnAuthorization(filterContext);

 }

}

將其添加到您的控制器/操作中

[CustomAuthorization(Url="/Area/Login")]
public class HomeController {
 //...
}

引用自:https://stackoverflow.com/questions/5911092