• C#中FormsAuthentication用法实例


    。。。。本文纯属抄袭。。。。

     
    using System;
    using System.Web;
    using System.Web.Security;
     
    namespace AuthTest
    {
      public class Authentication
      {
        /// <summary>
        /// 设置用户登陆成功凭据(Cookie存储)
        /// </summary>
        /// <param name="UserName">用户名</param>
        /// <param name="PassWord">密码</param>
        /// <param name="Rights">权限</param>
        public static void SetCookie(string UserName,string PassWord,string Rights)
        {
          //
          //String PassWord="test";
          //
          String UserData = UserName + "#" + PassWord+"#"+Rights;
          if (true)
          {
            //数据放入ticket
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, UserName, DateTime.Now, DateTime.Now.AddMinutes(60), false, UserData);
            //数据加密
            string enyTicket = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, enyTicket);
            HttpContext.Current.Response.Cookies.Add(cookie);
          }
        }
        /// <summary>
        /// 判断用户是否登陆
        /// </summary>
        /// <returns>True,Fales</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()
        {
          if (isLogin())
          {
            string strUserData = ((FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData;
            string[] UserData = strUserData.Split('#');
            if (UserData.Length != 0)
            {
              return UserData[0].ToString();
            }
            else
            {
              return "";
            }
          }
          else
          {
            return "";
          }
        }
        /// <summary>
        /// 获取凭据中的密码
        /// </summary>
        /// <returns>密码</returns>
        public static string getPassWord()
        {
          if (isLogin())
          {
            string strUserData = ((FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData;
            string[] UserData = strUserData.Split('#');
            if (UserData.Length!=0)
            {
              return UserData[1].ToString();
            }
            else
            {
              return "";
            }
          }
          else
          {
            return "";
          }
        }
        /// <summary>
        /// 获取凭据中的用户权限
        /// </summary>
        /// <returns>用户权限</returns>
        public static string getRights()
        {
          if (isLogin())
          {
            string strUserData = ((FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData;
            string[] UserData = strUserData.Split('#');
            if (UserData.Length!=0)
            {
              return UserData[2].ToString();
            }
            else
            {
              return "";
            }
          }
          else
          {
            return "";
          }
        }
      }
    }
  • 相关阅读:
    jquery获取tr并更改tr内容
    jquery获取元素索引值index()
    禁止apache显示目录索引 apache禁止列目录
    mysql启动错误之mysql启动报1067错误如何解决
    Expo大作战(四)--快速用expo构建一个app,expo中的关键术语
    Expo大作战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等
    Expo大作战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题
    Expo大作战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用
    Linux(CentOS)之-性能监控
    [转]winform程序textbox滚动条保持在最下面 内容不闪烁
  • 原文地址:https://www.cnblogs.com/syp1Blog/p/10368398.html
Copyright © 2020-2023  润新知