webform中用cookie来实现登录与退出

来源:互联网 发布:mg动画 知乎 编辑:程序博客网 时间:2024/04/30 14:30

/// <summary>
/// 设置COOKIE 120  /// </summary>
 /// <param name="userName"></param>
 /// <param name="password"></param>

 public void SetCookie(string username)
 {
         DataTable table = getUser(username);
         if (table.Rows.Count > 0)
        {
             int userID = int.Parse(table.Rows[0]["userid"].ToString());
             int power = int.Parse(table.Rows[0]["power"].ToString());
             string userData = username.Replace(@"/", @"//") + "#" + power.ToString();
             FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userID.ToString(), 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 bool IsLogin()      

{
    return HttpContext.Current.User.Identity.IsAuthenticated;
}

    /// <summary>
 /// 退出登录
/// </summary>

 public void Logout()
{
            FormsAuthentication.SignOut();

}

/// 获取登录的用户ID
 /// </summary>
/// <returns></returns>

 public int getUserID()

{
      if (IsLogin())
      {
           return Convert.ToInt32(HttpContext.Current.User.Identity.Name);
       }

        else

      {
          return -1;
       }

}



 /// <summary>
 /// 获得用户名
/// </summary>
 /// <returns></returns>

 public string getUserName()

           {
                  return UserData[0].Replace(@"//", @"/");
            }

           else                    return "";
            }

            else
{
 return "";
 }

}

<summary>
/// 返回用户的角色
 /// </summary>
 /// <returns></returns>

 public int getUserRole()
{

       if (IsLogin())
       {
               string strUserData = ((FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData;
               string[] UserData = strUserData.Split(new string[] { @"#" }, StringSplitOptions.RemoveEmptyEntries);
                if (UserData.Length > 0)
               {
                  return Int32.Parse(UserData[1]);
              }

              else
                  return -1;
            }

            else
           {
              return -1;
           }

       }

/// <summary>
      /// 判断用户是否登录 /// </summary>
       /// <returns>已登录返回true</returns>

      public bool IsLogin()     {
 return HttpContext.Current.User.Identity.IsAuthenticated;
        }

      /// <summary>
       /// 退出登录
       /// </summary>

      public void Logout()
     {
         FormsAuthentication.SignOut();
       }

        /// <summary>
        /// 获取登录的用户ID
       /// </summary>
      /// <returns></returns>

       public int getUserID()
     {
  if (IsLogin())
          {
               return Convert.ToInt32(HttpContext.Current.User.Identity.Name);
          }

        else
         {
 return -1;
            }

       }

/// <summary>
 /// 获得用户名
 /// </summary>
 /// <returns></returns>

 public string getUserName()
 {
      if (IsLogin())
     {
          string strUserData = ((FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData;
          string[] UserData = strUserData.Split(new string[] { @"#" }, StringSplitOptions.RemoveEmptyEntries);
          if (UserData.Length > 0)
               {
                   return UserData[0].Replace(@"//", @"/");
               }

               else
                   return "";
           }

            else
          {
               return "";
          }

       }