• mvc 微软票据验证


    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"] == "123")
                {
    
                    #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(1, "james", DateTime.Now, DateTime.Now.AddMinutes(5), true, "1,2,3");
                    ////将票据对象转成加密字符串
                    string hashCookie = FormsAuthentication.Encrypt(ticket);
                    HttpCookie cokie = new HttpCookie(FormsAuthentication.FormsCookieName, hashCookie);//FormsAuthentication .FormsCookieName配置文件的cookie名称
                    cokie.Expires = DateTime.Now.AddMinutes(5);
                    Response.Cookies.Add(cokie);
    
    
                }
                return View();
            }
    
    
        }
    }
  • 相关阅读:
    HashTable和HashMap
    TreeSet的剖析
    TreeMap--左旋右旋
    TreeMap的实现--红黑树
    AarryList和LinkedList比较
    由浅入深解析HashMap系列二---扩容
    由浅入深解析HashMap系列一---HashMap简单实现 增、删、查。
    由浅入深解析HashMap
    重入锁----ReentrantLock
    系统多语言实现
  • 原文地址:https://www.cnblogs.com/sumg/p/3744742.html
Copyright © 2020-2023  润新知