我有一个C#MVC Web应用程序,该应用程序将在闲置30分钟后使用户的会话期满,在那之后,如果用户尝试在网站上执行任何操作,则该令牌将被未经授权。当我从任何地方希望能够将用户重定向到首页时,该怎么做?
答案 0 :(得分:0)
您可以在控制器级别或个人操作级别处理此问题。当您收到未经授权的401请求时,请使用自定义属性重定向到所需的页面(在您的情况下为首页)。
public class CustomAuthorize : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
//filterContext.Result = new HttpUnauthorizedResult(); // Try this but i'm not sure
filterContext.Result = new RedirectResult("~/Home/Unauthorized");
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (this.AuthorizeCore(filterContext.HttpContext))
{
base.OnAuthorization(filterContext);
}
else
{
this.HandleUnauthorizedRequest(filterContext);
}
}
}
并在控制器或操作级别应用
[CustomAuthorize(Roles = "Admin")]