C#中FormsAuthentication用法实例

作者:junjie 时间:2023-06-02 14:33:52 


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 "";
     }
   }
 }
}
标签:C#,FormsAuthentication
0
投稿

猜你喜欢

  • 基于synchronized修饰静态和非静态方法

    2021-10-30 06:58:03
  • 老生常谈设计模式之动态代理

    2021-06-12 06:15:50
  • java反射使用示例分享

    2023-07-02 20:18:59
  • Java调用Shell命令的方法

    2022-01-06 20:01:34
  • 最优雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企业级应用(附源码)

    2023-09-26 18:27:57
  • 关于easyExcel中读取Excel表头的实例说明

    2023-10-11 17:48:43
  • 详解Docker学习笔记之搭建一个JAVA Tomcat运行环境

    2022-09-03 02:26:06
  • Android SQLite数据库版本升级的管理实现

    2023-11-09 23:58:44
  • C#实现功能强大的中国农历日历操作类

    2023-06-05 04:13:59
  • C#实现JSON字符串序列化与反序列化的方法

    2023-12-01 12:40:23
  • c#中虚函数的相关使用方法

    2022-10-25 05:44:53
  • Android提高之使用NDK把彩图转换灰度图的方法

    2023-07-22 02:00:07
  • java 三种将list转换为map的方法详解

    2023-09-13 03:35:39
  • Java实现软件运行时启动信息窗口的方法

    2023-01-04 06:21:55
  • Java并发编程之浅谈ReentrantLock

    2022-08-25 10:46:02
  • Eclipse项目怎么导入IDEA并运行(超详细)

    2021-11-15 06:51:41
  • Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】

    2021-05-27 11:39:35
  • Android实现记住账号密码功能

    2021-10-02 01:51:24
  • Java try()语句实现try-with-resources异常管理机制操作

    2022-02-06 18:29:16
  • Java如何通过枚举实现有限状态机

    2021-08-05 04:21:05
  • asp之家 软件编程 m.aspxhome.com