单点登陆 (二)

2014-11-23 23:40:09 · 作者: · 浏览: 48
HttpContext.Current.User.Identity.IsAuthenticated; } /// /// 登出 /// /// public static bool LogOut() { try { //System.Web.Security.FormsAuthentication.SignOut(); CookieExt.ClearCookie(CookieName); CookieExt.ClearCookie(messageCookieName); CookieExt.ClearCookie(cartCookieName); //清除登陆时间 CookieExt.ClearCookie(LoginTimeCookie); HttpContext.Current.Session.Remove(LoginTimeCookie); //提现密码 CookieExt.ClearCookie("_CN100_DRACA_"); //提现错误次数 CookieExt.ClearCookie("_CN100_DRACOUNT_"); //移除子帐号菜单权限 if (HttpContext.Current.Session[MenuSessionName] != null) { HttpContext.Current.Session.Remove(MenuSessionName); } return true; } catch { return false; } } /// /// /// public static object @Lock = new object(); /// /// 获取当前用户信息 /// public static LoginResult UserInfo { get { CurrentUser user = new CurrentUser(); return user.GetUserInfo(); } } /// /// 获取用户信息 /// /// public LoginResult GetUserInfo() { lock (@Lock) { LoginResult result = new LoginResult(); if (IsLogin()) { string UserData = CookieExt.GetCookieva lueByName(CookieName); if (!string.IsNullOrEmpty(UserData)) { try { string decryptString = DecryptDES(UserData, configPassword); result = (LoginResult)JsonConvert.DeserializeObject(decryptString, typeof(LoginResult)); DateTime loginTime = GetLoginTime(); //延长cookie时间 // ExtendCookieTime(UserData); if (loginTime.AddMinutes(ExpireMinutes) < DateTime.Now) { LogOutToLoginPage(); return new LoginResult(); } else { //延长登陆时间 ExtendCookieTime(); } } catch (Exception ex) { Log.WriteLog(ex); RedirectToLoginPage(); } } } return result; } } /// /// 延长用户cookie时间 /// public static void ExtendCookieTime() { //try //{ // if (HttpContext.Current.Session[LoginTimeCookie] != null) // { // DateTime time = Convert.ToDateTime(HttpContext.Current.Session[LoginTimeCookie]); // if (time.AddMinutes(1) < DateTime.Now) // { // HttpContext.Current.Session[LoginTimeCookie] = DateTime.Now; // CookieExt.SetCookie(LoginTimeCookie, DateTime.Now.ToString()); // } // } // else // { // HttpContext.Current.Session[LoginTimeCookie] = DateTime.Now; // CookieExt.SetCookie(LoginTimeCookie, DateTime.Now.ToString()); // } //} //catch (Exception ex) //{ // Log.WriteLog(ex); // CookieExt.SetCookie(LoginTimeCookie, DateTime.Now.ToString()); //} CookieExt.SetCookie(LoginTimeCookie, DateTime.Now.ToString()); } ///
/// 获取上次登陆时间 ///
/// private static DateTime GetLoginTime() { if (CookieExt.GetCookie(LoginTimeCookie) != null) { DateTime loginTime = DateTime.Now; if (DateTime.TryParse(CookieExt.GetCookieva lueByName(LoginTimeCookie), out loginTime)) { return loginTime; } } return DateTime.Now; } /// /// 登出返回登陆页面 /// public static void LogOutToLoginPage() { //System.Web.Security.FormsAuthentication.SignOut(); LogOut(); string url = GetReturnUrl(); HttpContext.Current.Response.Redirect(FormsAuthentication.LoginUrl + " ReturnUrl=" + url); } /// /// 登出并跳转到默认页面 /// public static void LogOutToDefaultPage() { LogOut(); HttpContext.Current.Response.Redirect(FormsAuthentication.DefaultUrl); } /// /// 转到登陆页面 /// public static void RedirectToLoginPage() { string url = GetReturnUrl(); HttpContext.Current.Response.Redirect(FormsAuthentication.LoginUrl + " ReturnUrl=" + url); } /// /// 转到默认页面 /// public static void RedirectToDefaultPage() { HttpContext.Current.Response.Redirect(FormsAuthentication.DefaultUrl); } /// /// 用户名,如果是子帐号登陆,用父帐户名 /// public static string UserName { get { if (IsLogin()) { //return HttpContext.Current.User.Identity.Name; return UserInfo.UserName; } return null; } } /// /// 保存用户信息到cookie /// /// public static void SaveUserCookie(LoginResult result) { //string userData = JsonConvert.SerializeObject(result); //FormsAuthenticationTicket tic