我在MVC控制器中有以下方法,当用户未登录时,该方法重定向到登录页面.
[Authorize]
public ActionResult Search() {
return View();
}
[Authorize]
public ActionResult Edit() {
return View();
}
Run Code Online (Sandbox Code Playgroud)
是否有快速/简单/标准的方法将第二个操作重定向到web.config文件中定义的页面以外的其他登录页面?
或者我必须做类似的事情
public ActionResult Edit() {
if (IsUserLoggedIn)
return View();
else
return ReturnRedirect("/Login2");
}
Run Code Online (Sandbox Code Playgroud)
小智 19
我认为可以通过创建自定义授权过滤器:
public class CustomAuthorization : AuthorizeAttribute
{
public string LoginPage { get; set; }
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.HttpContext.Response.Redirect(LoginPage);
}
base.OnAuthorization(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
在你的行动中:
[CustomAuthorization(LoginPage="~/Home/Login1")]
public ActionResult Search()
{
return View();
}
[CustomAuthorization(LoginPage="~/Home/Login2")]
public ActionResult Edit()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6205 次 |
| 最近记录: |