Can I have different login URL for different ASP .NET MVC3 areas?
e.g. I would like to have different login page for Administrator and Data entry operators.
I see a web.config in each area's view portion and I have tried doing:
<authentication mode="Forms">
<forms loginUrl="~/Administration/Account/LogOn" timeout="2880" />
</authentication>
but it does not play well.
Cheers.
I'm not aware of .NET handling this for you but you could create a custom 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);
}
}
An add that to your controllers/actions
[CustomAuthorization(Url="/Area/Login")]
public class HomeController {
//...
}