using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security; namespace 验证权限.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/ public ActionResult Index()
{
//第一种获取cookie
HttpCookie cookie = Request.Cookies["ticket"];
//解密后还原成ticket对象
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
Response.Write("用户名=" + ticket.Name + "权限=" + ticket.UserData); //第二种 使用微软身份验证机制授权
if (HttpContext.Request.IsAuthenticated)
{
string username = HttpContext.User.Identity.Name;//获取用户名 FormsIdentity formsidentity = HttpContext.User.Identity as FormsIdentity; //身份信息
// formsidentity.Ticket; //登陆过
}
else
{
//未登录
}
return View();
}
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(FormCollection form)
{
if (form["txtName"] == "James" && form["txtPwd"] == "")
{ #region 使用微软票据 加密方式保存cookie
//使用微软票据 加密方式保存cookie
//FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,"james",DateTime .Now ,DateTime .Now .AddMinutes(5),true,"1,2,3");
////将票据对象转成加密字符串
//string hashCookie = FormsAuthentication.Encrypt(ticket);
//HttpCookie cokie = new HttpCookie("ticket",hashCookie);
//cokie.Expires = DateTime.Now.AddMinutes(5);
//Response.Cookies.Add(cokie);
//Response.Write("登陆成功!");
#endregion #region 使用微软自带的身份验证机制
//使用微软自带的身份验证机制
//FormsAuthentication.SetAuthCookie("james", true);
#endregion //结合 手动创建票据 并制定 登录用户权限 标志字符串
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(, "james", DateTime.Now, DateTime.Now.AddMinutes(), true, "1,2,3");
////将票据对象转成加密字符串
string hashCookie = FormsAuthentication.Encrypt(ticket);
HttpCookie cokie = new HttpCookie(FormsAuthentication.FormsCookieName, hashCookie);//FormsAuthentication .FormsCookieName配置文件的cookie名称
cokie.Expires = DateTime.Now.AddMinutes();
Response.Cookies.Add(cokie); }
return View();
} }
}

mvc 微软票据验证的更多相关文章

  1. MVC Model数据验证

    概述 上节我们学习了Model的数据在界面之间的传递,但是很多时候,我们在数据传递的时候为了确保数据的有效性,不得不给Model的相关属性做基本的数据验证. 本节我们就学习如何使用 System.Co ...

  2. 期货大赛项目|四,MVC的数据验证

    上图先看下效果 样式先不说,先了解下数据验证是怎么实现的 一 必须是强类型的视图 二 这些显示提示的话语,都在强类型的实体中 三 必须使用Html.BeginForm或者Html.AjaxBeginF ...

  3. ASP.NET MVC 扩展数据验证 转

    此文只作记录 public class MaxWordsAttribute : ValidationAttribute { public MaxWordsAttribute(int maxWords) ...

  4. MVC 3 数据验证 Model Validation 详解

    在MVC 3中 数据验证,已经应用的非常普遍,我们在web form时代需要在View端通过js来验证每个需要验证的控件值,并且这种验证的可用性很低.但是来到了MVC 新时代,我们可以通过MVC提供的 ...

  5. (转)MVC 3 数据验证 Model Validation 详解

    继续我们前面所说的知识点进行下一个知识点的分析,这一次我们来说明一下数据验证.其实这是个很容易理解并掌握的地方,但是这会浪费大家狠多的时间,所以我来总结整理一下,节约一下大家宝贵的时间. 在MVC 3 ...

  6. MVC WebApi 用户验证 (2)

    构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)   前言: 构建ASP.NET MVC5+EF6+E ...

  7. <转>ASP.NET学习笔记之MVC 3 数据验证 Model Validation 详解

    MVC 3 数据验证 Model Validation 详解  再附加一些比较好的验证详解:(以下均为引用) 1.asp.net mvc3 的数据验证(一) - zhangkai2237 - 博客园 ...

  8. MVC模型部分验证

    ASP.NET MVC模型部分验证 在很多情况下,我们为了代码的复用可能会存在ViewModel共用的情形.比方说,web应用中常常会遇到的一个需求就是用户找回密码的功能.用户首先要验证通过验证邮箱( ...

  9. 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)

    前言: 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC WebApi 用户验证 (1) 回顾上一节,我们利用webapi简单的登录并 ...

随机推荐

  1. Window.open 实现导航与打开窗口,导航到一个特定链接地址,也可以打开一个新的浏览器窗体

    语法 window.open(strUrl,strWindowName,strWindowFeatures ,replace) strUrl: 打开资源的地址 strWindowName: 表示窗体名 ...

  2. 两个listbox 无刷新互动

    页面代码: <table border="0" cellpadding="0" cellspacing="0" style=" ...

  3. border-radius讲解1

    如今CSS3中的border-radius出现后,让我们没有那么多的烦恼了,首先制作圆角图片的时间是省了,而且其还有多个优点:其一减少网站的维护的工作量,少了对图片的更新制作,代码的替换等等;其二.提 ...

  4. eclipse中多个工程编译到同一个目录下

    1.点击link source  2.选择Java(ps:Java文件目录)或者resource(ps:配置文件目录)  3.最后结果,然后使用project中的clean进行编译,就可以把两个工程编 ...

  5. VS2010程序打包操作(超详细的)

    1.  在vs2010 选择“新建项目”----“其他项目类型”----“Visual Studio Installerà“安装项目”: 命名为:Setup1 . 这是在VS2010中将有三个文件夹, ...

  6. Niagara AX之在Station下显示Home节点

    默认的Station下是没有Home节点的,那么,这个Home节点是怎么添加上去的呢? 注意Home后面的描述(Description):“Navigation tree defined by nav ...

  7. html 标记语言

    HTML    html标记语言        网页            <html></html>        可见页面内容            <body> ...

  8. Bing必应(Yahoo雅虎)搜索引擎登录网站 - Blog透视镜

    Bing必应是微软的搜索引擎,原本是置放在MSN网站上的,微软重新开发并改为新的名子,只要连到官网,登录网站后,过了不久,搜索引擎就会用爬虫,来检索你的网站,等过了一阵子之后,自然就可以找到你的文章. ...

  9. ubuntu下编译源码级QT

    注意必须好好看官方文档: http://qt-project.org/doc/qt-5/linux.html 包括编译Qt库依赖的包等等. 编译过程中发现以下错误: All the OpenGL fu ...

  10. Android中通过代码获取arrays.xml文件中的数据

    android工程res/valuse文件夹下的arrays.xml文件中用于放各种数组数据,比如字符串数组.整型数组等,数组中的数据可能是具体的值,也有可能是对资源数据的引用,下面针对这两种情况通过 ...