zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    }
    end
    天祺围棋:www.tianqiweiqi.com呵呵

    凡事以大气象去面对,优秀是一种习惯。

  • 相关阅读:
    [POJ2104]K-th Number(区间第k值 记录初始状态)
    [POJ2007]Scrambled Polygon(计算几何 极角排序)
    [POJ1269]Intersecting Lines (计算几何)
    [POJ2318]TOYS (计算几何 行列式(叉乘)+二分)
    [HDOJ1394]Minimum Inversion Number(线段树,逆序数)
    Codeforces Round #319 (Div. 2) C. Vasya and Petya's Game 数学题
    BZOJ 1934 [Shoi2007]Vote 善意的投票 最小割
    BZOJ 1055 区间DP
    HDU4267 树状数组 不连续区间修改(三维)
    HDU 3308 线段树单点更新+区间查找最长连续子序列
  • 原文地址:https://www.cnblogs.com/greatverve/p/FormsAuthenticationTicket.html
Copyright © 2011-2022 走看看