C#中FormsAuthentication用法实例

 更新时间:2015年02月15日 09:56:49   投稿:junjie  
这篇文章主要介绍了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 "";
      }
    }
  }
}

相关文章

  • C#之如何实现多个子窗体切换效果

    C#之如何实现多个子窗体切换效果

    这篇文章主要介绍了C#之如何实现多个子窗体切换的效果,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • C#数据绑定(DataBinding)简单实现方法

    C#数据绑定(DataBinding)简单实现方法

    这篇文章主要介绍了C#数据绑定(DataBinding)简单实现方法,以简单实例形式简单分析了C#实现数据绑定与读取的方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • Path类 操作文件类的实例

    Path类 操作文件类的实例

    下面小编就为大家分享一篇Path类 操作文件类的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • C#基础之泛型

    C#基础之泛型

    泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个新功能。接下来通过本文给大家介绍c#基础之泛型,感兴趣的朋友一起学习吧
    2016-08-08
  • C#下使用XmlDocument操作XML详解

    C#下使用XmlDocument操作XML详解

    本文详细讲解了C#使用XmlDocument操作XML的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# WebApi 接口传参详解

    C# WebApi 接口传参详解

    这篇文章主要介绍了C# WebApi 接口传参详解,本篇打算通过get、post、put、delete四种请求方式分别谈谈基础类型(包括int/string/datetime等)、实体、数组等类型的参数如何传递。感兴趣的小伙伴们可以参考一下
    2018-07-07
  • C#检查字符串是否是合法URL地址的方法

    C#检查字符串是否是合法URL地址的方法

    这篇文章主要介绍了C#检查字符串是否是合法URL地址的方法,涉及C#字符串判断的相关技巧,需要的朋友可以参考下
    2015-05-05
  • C#使用Region对图形区域构造和填充的方法

    C#使用Region对图形区域构造和填充的方法

    这篇文章主要介绍了C#使用Region对图形区域构造和填充的方法,实例分析了Region类图形操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • C#使用timer定时在屏幕上输出信息的方法

    C#使用timer定时在屏幕上输出信息的方法

    这篇文章主要介绍了C#使用timer定时在屏幕上输出信息的方法,涉及C#中timer定时器的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 用c#实现简易的计算器功能实例代码

    用c#实现简易的计算器功能实例代码

    这篇文章主要介绍了c#实现简易的计算器功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论