62,269
社区成员
发帖
与我相关
我的任务
分享#region BLL
/*FormsAuthenticationTicket用于 Forms 身份验证对用户进行标识
* 构造方法:(版本,用户名,票证发出日期,过期日期,是否跨浏览器,保存的数据,cookie路径)
*
* FormsAuthentication提供了相应的方法和属性,您可以在需对用户进行身份验证的应用程序中使用它们
* FormsCookiePath该属性取得cookie路径,
* FormsCookieName名字cookie
* Encrypt创建一个字符串,其中包含适用于 HTTP Cookie 的加密的 Forms 身份验证票证。
*/
/// <summary>
/// 设置COOKIE
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
public void SetCookie(string username,int day)
{
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);
//设置过期时间
if (day > 0)
{
newCookie.Expires = DateTime.Now.AddDays(day);//这里可以用AddDays(1d)
}
HttpContext.Current.Response.Cookies.Add(newCookie);
}
}
/// <summary>
/// 设置COOKIE
/// </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();
}
/// <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 "";
}
}
/// <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;
}
}
#endregion