none
.Net Forms验证如何在遇到401时不自动转向到登陆页面? RRS feed

  • 问题

  • .Net Forms验证如何控制在遇到401时不自动执行转向操作,或者能我们自己定义转向操作?

    • 已编辑 Rainrcn 2012年6月21日 3:08
    2012年6月7日 2:36

答案

  • try
    {
    }
    
      catch (Exception ex)
                {
                    if (IsAjaxRequest)
                    {
                        string errorMsg = string.Format("Error posting data: {0}", ex.Message);
                        Response.StatusCode = 400;
                        return Json(errorMsg);
                    }
                    else
                    {
                        return Message("提交评论失败", "您提交的评论失败,请重新提交!.", MessageIcon.Error);
                    }
                }
    上面是我在asp.net mvc里面的写法..要401 或者 403 只要设置 Response.StatusCode= 401 or 403 就可以了!
    2012年6月12日 1:59
    版主

全部回复

  • 在 Web.config 中可以进行配置。

    配置 loginUrl 到你期望的页面即可。

        <authentication mode="Forms">
          <forms loginUrl="~/Account/LogOn" timeout="2880" />
        </authentication>


    冠军

    2012年6月7日 22:49
  •  我不是这个意思,我是说在我开启Forms验证时,我后台想返回一个 401或者 403 。那么到达前台浏览器时,浏览器接受的也是 401或者 403 .而不是 在我返回 401时 Forms模块自动给我转向到 我配置的页面(默认登录页面),而是有我自己自定义控制是否需要转向。 

    不知道这样能实现否?

    2012年6月8日 6:21
  • try
    {
    }
    
      catch (Exception ex)
                {
                    if (IsAjaxRequest)
                    {
                        string errorMsg = string.Format("Error posting data: {0}", ex.Message);
                        Response.StatusCode = 400;
                        return Json(errorMsg);
                    }
                    else
                    {
                        return Message("提交评论失败", "您提交的评论失败,请重新提交!.", MessageIcon.Error);
                    }
                }
    上面是我在asp.net mvc里面的写法..要401 或者 403 只要设置 Response.StatusCode= 401 or 403 就可以了!
    2012年6月12日 1:59
    版主
  • 不很不清楚楼主是否试过 401 .因为 对于Forms验证来说 401[HttpUnauthorizedResult] 和 400 以及 403 意义完全不同。难道是我描述的不够清楚?

    请看下图:

    CODE [同chenrensong的做法]:

    CLIENT:

    不知道是否是我的代码写错了? 很明显Forms遇到 401 自动给我302 至 登陆页面!



    • 已编辑 Rainrcn 2012年6月15日 3:03
    2012年6月15日 2:55