/// <summary> /// 验证用户身份 /// </summary> private void Authentication() { string string_Token = this.SSOToken; if (string.IsNullOrEmpty(string_Token)) { RedirectToLogon(LoginError.TokenWrong); return; } SSOTokenInfo tokenInfo = SSOProvider.GetInfoFromSSFToken(string_Token); //判断Token是否在有效期内 if (!(tokenInfo.LoginDate.AddHours(SSOProvider.SSFTokenValidationPeriod) > DateTime.Now)) { RedirectToLogon(LoginError.TokenExpired); return; } SystemUserWrapper userInfo = SystemUserWrapper.FindByLoginID(tokenInfo.LoginUserID); //单点登录判断 if (tokenInfo.SSOKey != userInfo.SSOKey) { RedirectToLogon(LoginError.HasLoginInOtherPlace); return; } if (SSOProvider.GetSessionValue(SSOProvider.Session_Key_LoginUser) == null) { SSOProvider.SetSessionValue(SSOProvider.Session_Key_LoginUser, tokenInfo); } }
public static string GetSSFToken(SSOTokenInfo ssoTokenInfo) { return(CryptographyUtil.EncryptDES(SerializeUtil.ToJson(ssoTokenInfo), m_SSFTokenKey)); }
public static void SetSessionValue(string sessionKeyLoginUser, SSOTokenInfo tokenInfo) { HttpContext.Current.Session[sessionKeyLoginUser] = tokenInfo; }