Asp.net MVC未授权状态代码和RedirectResult

时间:2013-05-16 11:28:04

标签: asp.net asp.net-mvc

我有一个授权过滤器,用于检查用户会话是否有效。

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状态代码吗?

1 个答案:

答案 0 :(得分:0)

你使用formsauthentication吗?

你可以试试这个,

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

                FormsAuthentication.RedirectToLoginPage();