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
""
;
}
}
}
}