2013-05-16 30 views
0

我有一个授权过滤器来检查用户会话是否有效。Asp.net MVC未经授权的状态码和RedirectResult

public class ValidateSessionTokenFilter : IAuthorizationFilter 
{ 
    public void OnAuthorization(AuthorizationContext filterContext) 
    { 
     if (_SessionTokenIsValid() == false) 
     { 
      filterContext.HttpContext.Response.SuppressFormsAuthenticationRedirect = true; 
      filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized; 

      filterContext.Result = new RedirectResult(_LoginUrl(), false); 
     } 
    } 
} 

我想知道,如果状态代码设置为Unauthorized,然后返回RedirectResult正在冲突?

我应该只是返回一个RedirectResult而不指定Unauthorized状态码?

回答

0

你使用formsauthentication?

你可以试试这个,

if (authorizationContext.HttpContext.Request.IsAjaxRequest()) 
       { 
        FormsAuthentication.SignOut(); 
        return; 
       } 

       FormsAuthentication.RedirectToLoginPage(); 
相关问题