单点登陆 (三)

2014-11-23 23:40:09 · 作者: · 浏览: 51
ket = new FormsAuthenticationTicket(1, // result.UserName, // DateTime.Now, // DateTime.Now.AddMinutes(30), // value of time out property // true, // Value of IsPersistent property // userData, // FormsAuthentication.FormsCookiePath); //string encryptedTicket = FormsAuthentication.Encrypt(ticket); //HttpCookie authCookie = new HttpCookie(CookieName, encryptedTicket); //HttpCookie authCookie = new HttpCookie(CookieName, encryptedTicket); //authCookie.Domain = FormsAuthentication.CookieDomain; //authCookie.Path = FormsAuthentication.FormsCookiePath; //authCookie.Expires = DateTime.Now.AddMinutes(30); //HttpCookie authCookie = new HttpCookie(CookieName, encryptedTicket); //authCookie.Domain = FormsAuthentication.CookieDomain; //authCookie.Path = FormsAuthentication.FormsCookiePath; //authCookie.Expires = DateTime.Now.AddMinutes(30); //if (HttpContext.Current.Request.Cookies[CookieName] != null) //{ // HttpContext.Current.Response.Cookies.Set(authCookie); //} //else //{ // HttpContext.Current.Response.Cookies.Add(authCookie); //} result.LoginTime = DateTime.Now; string encryptedTicket = DeserializeUserData(result); CookieExt.SetCookie(CookieName, encryptedTicket); //, DateTime.Now.AddMinutes(ExpireMinutes) //清除购物与信息缓存 CookieExt.ClearCookie(cartCookieName); CookieExt.ClearCookie(messageCookieName); //保存登陆时间 ExtendCookieTime(); //移除子帐号菜单权限 if (HttpContext.Current.Session[MenuSessionName] != null) { HttpContext.Current.Session.Remove(MenuSessionName); } } /// /// 序列化用户信息 /// /// /// public static string DeserializeUserData(LoginResult result) { string userData = JsonConvert.SerializeObject(result); string encryptedTicket = EncryptDES(userData, configPassword); return encryptedTicket; } ///
/// 获取当前用户信息 ///
/// public static LoginResult GetCurrentUserInfo() { lock (@Lock) { CurrentUser user = new CurrentUser(); return user.GetUserInfo(); } } /// /// 获取 /// /// public static string GetReturnUrl() { string hosts = HttpContext.Current.Request.Headers["host"]; if (string.IsNullOrEmpty(hosts)) { hosts = HttpContext.Current.Request.Url.Host; } string pageUrl = HttpContext.Current.Request.Url.PathAndQuery; return HttpUtility.UrlEncode("http://" + hosts + pageUrl); } /// /// 根据用户,判断是否具有菜单ID权限 /// /// /// /// public static bool HasMenuIDBySubAccountID(long menuID, long subAccountID) { try { using (WcfTcpClient client = WcfClients.Member.CreateClient()) { return client.Channel.HasMenuIDBySubAccountID(subAccountID, menuID); } } catch (Exception ex) { Log.WriteLog(ex); return false; } } /// /// 当前用户是否具有菜单权限 /// /// 菜单ID /// public static bool HasMenuID(long menuID) { if (UserInfo == null) return false; return HasMenuIDBySubAccountID(menuID, UserInfo.SubAccountID); } /// /// 根据用户名,获取有权限的菜单ID /// /// 子帐号ID /// public static long[] GetMenuIDesBySubAccountID(long subAccountID) { try { using (WcfTcpClient client = WcfClients.Member.CreateClient()) { return client.Channel.GetMenuIDesBySubAccountID(subAccountID); } } catch (Exception ex) { Log.WriteLog(ex); return new long[] { };