zoukankan      html  css  js  c++  java
  • MVC:感觉用户认证标识(IsAuthenticated)有点延时。

    最近在学MVC的用户登录认证,思路如下:用户点击“登录”链接-->路由分析到“用户管理控制器”的登录方法-->返回登录视图弹出登录框-->用户输入帐号密码后登录视图再POST回控制器-->控制器完成登录操作再返回视图-->如果登录成功则关闭登录弹出框层,及刷新页面信息。

    其它步骤都没问题,问题就出在:如何在VIEW中判断是否登录成功?

    于是俺在VIEW中用这一段代码来判断:

    <% if (Request.IsAuthenticated)//如果用户认证成功;
       { %>
    <script type="text/javascript">
        parent.$.closePopupLayer('LoginPopup');//关闭登录弹出框;
        parent.location.reload();//刷新主页;
    </script>
    <% } %>

    但POST后返回View的Request.IsAuthenticated并不是True,要再次输入帐号密码post后才返回true,把Request.IsAuthenticated换成Page.User.Identity.IsAuthenticated,问题依然如此。

    因此俺认为可能是IsAuthenticated存在延时的问题,于是用来一个替代方案:

    1、在Controller处理登录认证时,增加一个ViewData来识别是否登录成功,代码如下:

    if (Membership.ValidateUser(userName, password))
     {
           FormsAuthentication.SetAuthCookie(userName, persistent);

           ViewData["longined"] = "登录成功";
            return View();
      }

    2、在View中通过把ViewData["longined"] == "登录成功"替代IsAuthenticated来识别是否登录成功,测试通过。

    本人接触MVC没多久,很多都是自己的感官认识,如有错误地方,欢迎大家指正。

  • 相关阅读:
    第一次迭代心得
    RDF搜索引擎——需求分析心得
    RDF搜索引擎——数据库设计心得
    RDF搜索引擎——数据库具体设计
    服务器上修改运行scala
    结对编程项目的收获与总结(支持UI背景与背景音乐的刷题器)
    取长补短——结对编程项目之队友代码分析
    团队项目——测试心得
    第一次迭代开发心得
    团队项目——需求心得
  • 原文地址:https://www.cnblogs.com/qisunpeng/p/1854913.html
Copyright © 2011-2022 走看看