• ASP.NET的票据工具类FormsAuthenticationTicket


    票据是asp.net登录验证的一种方式,以前研究过,现在并不使用,今天发现了,记录一下。

    /*###################票据工具###################
     * 1.设置<authentication mode="Forms"/>
     * 2.票据数据保存在cookie中,Logout就一直处于登录状态。
     ##############################################*/
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    using System.Web;
    using System.Web.Security;
    
    namespace YL.Common
    {
        public class TicketTool
        {
            /// <summary>
            /// 创建一个票据,放在cookie中
            /// 票据中的数据经过加密,解决了cookie的安全问题。
            /// </summary>
            /// <param name="username"></param>
            public static void SetCookie(string username, string userData)
            {
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddMinutes(60), false, userData, FormsAuthentication.FormsCookiePath);
                string encTicket = FormsAuthentication.Encrypt(ticket);
                HttpCookie newCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
                HttpContext.Current.Response.Cookies.Add(newCookie);
            }
            /// <summary>
            /// 通过此法判断登录
            /// </summary>
            /// <returns>已登录返回true</returns>
            public static bool IsLogin()
            {
                return HttpContext.Current.User.Identity.IsAuthenticated;
            }
            /// <summary>
            /// 退出登录
            /// </summary>
            public static void Logout()
            {
                FormsAuthentication.SignOut();
            }
            /// <summary>
            /// 取得登录用户名
            /// </summary>
            /// <returns></returns>
            public static string GetUserName()
            {
                return HttpContext.Current.User.Identity.Name;
            }
            /// <summary>
            /// 取得票据中数据
            /// </summary>
            /// <returns></returns>
            public static string GetUserData()
            {
                return (HttpContext.Current.User.Identity as FormsIdentity).Ticket.UserData;
            }
        }
    }
  • 相关阅读:
    Python+selenium怎么自定义函数进行翻页操作定位第二页元素
    序列
    元组
    读书笔记-活出意义来
    多线程源代码学习笔记
    MacOS环境下Redis安装
    django修改静态文件(css,js)之后,浏览器效果没改变
    JavaScript变量、值类型介绍和启发-day01
    99乘法法则(使用bootstrap做表格效果)
    do-while循环的与for循环,while循环的区别是什么——(摘抄)
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/4462094.html
Copyright © 2020-2023  润新知