最近在学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没多久,很多都是自己的感官认识,如有错误地方,欢迎大家指正。

转载于:https://www.cnblogs.com/qisunpeng/archive/2010/10/18/1854913.html

MVC:感觉用户认证标识(IsAuthenticated)有点延时。相关推荐

  1. Spring Boot整合Shiro + JSP教程(用户认证,权限管理,图片验证码)

    在此首先感谢**编程不良人**up主提供的视频教程 代码都是跟着up的视频敲的,遇到的一些问题也是通过CSDN博主提供的教程解决的,在此也感谢那些提供bug解决方案的前辈们~ 项目完整代码已经发布到g ...

  2. Java-SpringBoot:用户认证(Authentication)和用户授权(Authorization)

    Java-SpringBoot-2 学习视频:B站 狂神说Java – https://www.bilibili.com/video/BV1PE411i7CV 学习文档: 微信公众号 狂神说 –htt ...

  3. MVC全局用户验证之HttpModule

    在请求进入到MVC的处理mcvHandler之前,请求先到达HttpModule,因此可以利用HttpModule做全局的用户验证. HttpModule MVC5之前的版本基于system.web. ...

  4. Spring Security用户认证和权限控制(默认实现)

    1 背景 实际应用系统中,为了安全起见,一般都必备用户认证(登录)和权限控制的功能,以识别用户是否合法,以及根据权限来控制用户是否能够执行某项操作. Spring Security是一个安全相关的框架 ...

  5. Spring Cloud OAuth2 实现用户认证及单点登录

    OAuth 2 有四种授权模式,分别是授权码模式(authorization code).简化模式(implicit).密码模式(resource owner password credentials ...

  6. Spring Security Oauth2 JWT 实现用户认证授权功能

    Spring Security Oauth2 JWT 一 用户认证授权 1. 需求分析 1.1 用户认证与授权 什么是用户身份认证? 用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份 ...

  7. Shiro用户认证和用户授权流程

    有时候觉得'如约而至'是个多么美好的词,等的很辛苦,却不辜负.--<匿名> 1.引言 传统权限管理使用基于url拦截的权限管理方式,实现起来比较简单,不依赖框架,使用web提供filter ...

  8. [转] 前后端分离之JWT用户认证

    [From] http://www.jianshu.com/p/180a870a308a 在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当 ...

  9. Django (auth模块、User对象、用户认证、线上-用户认证)

    一.auth模块 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    提供了用户认证,即验证用户名以及密码是否正确,一般需要usern ...

最新文章

  1. JVM调优实战:G1中的to-space exhausted问题
  2. avaya http文件服务器,avaya 通讯服务器配置
  3. linux kernel基本构成的内容有下列哪些项_Linux_GUI加速(2)_Linux中的DRM-KMS分析
  4. oracle虑重语句,db基本语句(oracle)
  5. 信息学奥赛一本通C++语言——1096:数字统计
  6. python 表格格式输出_Python笔记---DAY3:格式化输出、for循环、列表操作
  7. cpu功耗排行_AMD、Intel主流处理器性能、功耗及性价比排行(更新中)
  8. 利用shell脚本来监控linux系统的负载与CPU占用情况
  9. python怎么爬取新浪微博数据中心_新浪微博数据爬取研究
  10. 5款免费好用的Gif录屏神器
  11. 负载均衡有哪些常见策略?
  12. Java并发包concurrent——ConcurrentHashMap
  13. 写给程序员的数理科普:混沌与三体
  14. js兼容安卓和IOS的复制文本到剪切板,已做浏览器兼容处理,勿需插件
  15. cmd命令行进入D盘的方法
  16. 百度搜索引擎压力测试报告
  17. linux挂载国外网盘,Linux通过安装davfs2来挂载webdav网盘
  18. 5G网络优化工程如何完美高效地准备一场面试?
  19. Asce‘s Summer Ranking No.11
  20. 我的世界云服务器自动保存,租用新睿云服务器一分钟搭建我的世界

热门文章

  1. 微服务升级_SpringCloud Alibaba工作笔记0011---Gateway常用的predicate
  2. Spring AOP 底层原理_001----AspectJ与CGLIB介绍
  3. run gender find mistake
  4. VS2010 小技巧
  5. dom渲染完毕再渲染数据_在vue组件中,异步手动渲染dom
  6. java 及时编译_Java 面试-即时编译( JIT )
  7. java中的string类型_Java中的字符串类型(String)
  8. java数组长度最大值,javase-获取数组最大值
  9. 装饰者模式 php,php装饰者模式简单应用案例分析
  10. redis多服务器共享_基于redis和shedlock实现分布式锁(超简单)