1.登录时在controller中记录session,代码如下:

  1. public ActionResult Login(UserLoginViewModel uViewModel)
  2. {
  3. if (ModelState.IsValid)
  4. {
  5. var user = db.ADUsers.SingleOrDefault(t => t.usrName == uViewModel.usrName && t.usrPassword == uViewModel.usrPassword);
  6.  
  7. if (user != null)
  8. {
  9. FormsAuthentication.SetAuthCookie(uViewModel.usrName, false);//将用户名放入Cookie中
  10. System.Web.HttpContext.Current.Session["usrName"] = uViewModel.usrName; //将用户名放入session中
  11.  
  12. return RedirectToAction("Index","Home");
  13. }
  14. else
  15. {
  16. ModelState.AddModelError("usrName", "用户名不存在!");
  17. }
  18. }
  19. return View(uViewModel);
  20. }

2.在View中,可以根据session进行判断是否正常登录

  1. @if (Session["usrName"] != null)
  2. {
  3. using (Html.BeginForm("LogOff", "ADUsers", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
  4. {
  5. @Html.AntiForgeryToken()
  6.  
  7. <ul class="nav navbar-nav navbar-right">
  8. <li>
  9. @Html.ActionLink("你好," + Session["usrName"] + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })
  10. </li>
  11. <li><a href="javascript:document.getElementById('logoutForm').submit()">注销</a></li>
  12. </ul>
  13. }
  14. }
  15. else
  16. {
  17. <ul class="nav navbar-nav navbar-right">
  18. <li>@Html.ActionLink("登录", "Login", "ADUsers", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
  19. <li>cookies:@Session["usrName"];</li>
  20. </ul>

3.注销时,记得将session清空

  1. public ActionResult LogOff()
  2. {
  3. FormsAuthentication.SignOut();
  4. System.Web.HttpContext.Current.Session["usrName"] = null;
  5. return RedirectToAction("Login");
  6. }

MVC中Session的使用和传递的更多相关文章

  1. mvc中view与controll之间传递参数时,可以使用url进行传递

    mvc中view与controller之间传递参数时,可以使用url进行传递,但是在url的地址中需要加上“id=123”这样的东西才行. 具体如代码: window.location.href = ...

  2. Spring MVC中Session的正确用法<转>

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  3. 【转】Spring MVC中Session的正确用法之我见

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  4. MVC中前台如何向后台传递数据------$.get(),$post(),$ajax(),$.getJSON()总结

    一.引言 MVC中view向controller传递数据的时候真心是一个挺让人头疼的一件事情.因为原理不是很懂只看一写Dome,按葫芦画瓢只能理解三分吧. 二.解读Jquery个Ajax函数 $.ge ...

  5. Spring MVC中Session的正确用法之我见

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  6. 转载ASP.NET MVC中Session的处理机制

    本文章转载自 http://www.cnblogs.com/darrenji/p/3951065.html ASP.NET MVC中的Session以及处理方式   最近在ASP.NET MVC项目中 ...

  7. mvc中的几个数据传递

    1.ViewData对象 ViewBagData是一种字典集合数据同时属于视图基类和控制器基类的属性. 实例: //控制器 public class HomeController:Controller ...

  8. JQuery文件上传插件uploadify在MVC中Session丢失的解决方案

    <script type="text/javascript"> var auth = "@(Request.Cookies[FormsAuthenticati ...

  9. Mvc中Session导致action不异步的问题

    Session导致Action不异步 啊.回想起来,真是一个大坑啊,最近博主在做一个上传文件实时显示进度条的功能.博主的思路是在上传的时候用一个Task一秒一次向Redis中插入当前的上传进度 ,上传 ...

随机推荐

  1. May 30th 2017 Week 22nd Tuesday

    Knowledge will give you power, but character respect. 知识给你力量,品格给你别人的尊敬. Good characters can help us ...

  2. Jmeter入门10 jmeter加密串处理方式2:BeanShell PreProcessor

    上一个博客讲了方式一:函数助手__digest加密,BeanShell PreProcessor也可以用java代码进行处理 线程组.参数.请求都直接使用上一个博客的. 第一步 添加BeanShell ...

  3. IOS 社交分享

    #import <Social/Social.h> @interface HMViewController () @end @implementation HMViewController ...

  4. 【转】Js中Prototype、__proto__、Constructor、Object、Function关系介绍

    一    Prototype.__proto__与Object.Function关系介绍        Function.Object:Js自带的函数对象.         prototype,每一个 ...

  5. java实现权重随机算法

    权重随机算法在抽奖,资源调度等系统中应用还是比较广泛的,一个简单的按照权重来随机的实现,权重为几个随机对象(分类)的命中的比例,权重设置越高命中越容易,之和可以不等于100: 简单实现代码如下: im ...

  6. ueditor图片上传,网络连接错误的解决方案

    错误产生的原因是ueditor/net目录中的Uploader.cs在网站发布之后就没有了,重新上传这个文件,问题就解决了

  7. mysql时间日期函数

    now(), current_timestamp(); -- 当前日期时间 current_date(); -- 当前日期 current_time(); -- 当前时间 date('yyyy-mm- ...

  8. 【luogu P1462 通往奥格瑞玛的道路】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1462 记住HP=0也叫死. #include <queue> #include <cstd ...

  9. c#正则表达式最简demo

    各个语言的正则表达式规则略有不同 项目中用到,所以将这个最简单的demo记录 using System; using System.Collections.Generic; using System. ...

  10. 买手机时几GB+几GB啥意思

    48GB 就是你每次下载手机软件呀.浏览图片呀.这些东西都放在48G里.你每次查看手机内存,就会看到你的48G用了多少.但是你什么时候看到你的4GB用了多少,都是那些360加速球呀提示你手机内存占用过 ...