/// <summary> /// 可以通过单点登录的进行自动登录的网站 跳转 构造跳转字符串 /// </summary> /// <param name="staffModel">登录信息</param> /// <param name="siteUrl">访问URL</param> /// <param name="autoLoginUrl">登录页面</param> /// <param name="pageUrl">The page URL.</param> /// <param name="token">token</param> /// <returns>返回地址</returns> public static string LoginSSOAddress(MStaffInfo staffModel, string siteUrl, string autoLoginUrl, string pageUrl, string token) { if (string.IsNullOrEmpty(token)) { token = GetToken(staffModel); } return string.Format("{0}{1}?PartnerId={2}&AccountId={3}&DeptId={4}&DeptShortName={5}&ReqType=0&Token={6}&RequestPage={7}", siteUrl, autoLoginUrl, "Change", staffModel.Staff_id, staffModel.Department_id.ToString(), HttpUtility.UrlEncode(staffModel.Department, Encoding.GetEncoding("gb2312")), token, System.Web.HttpUtility.UrlEncode(pageUrl)); }
/// <summary> /// 获取token /// </summary> /// <param name="staff">The staff.</param> /// <returns>System.String.</returns> private static string GetToken(MStaffInfo staff) { if (staff != null) { string crossOOSerivceUrl = ConfigurationManager.AppSettings["SOOUrl"] + "/LoginInfoValidate.aspx"; AuthenticateManager authManager = new AuthenticateManager(crossOOSerivceUrl, "Change", staff.Staff_id, staff.Department_id.ToString(), staff.Department, string.Empty); if (authManager.Login()) { return authManager.Token; } } return string.Empty; }
/// <summary> /// 设置单点登录本地Ticket /// </summary> /// <param name="staff">用户</param> private void SetLocalTicket(MStaffInfo staff) { try { if (SSOClientConfigHelper.SSOType == 1 || SSOClientConfigHelper.SSOType == 2) { DefaultClient client = new DefaultClient(); client.SaveLocalTicket(staff.Staff_id); } } catch (Exception ex) { AppException appEx = new AppException(string.Empty, "认证中心故障:" + ex.Message, ex, null); LogManager.Log.WriteException(appEx); } }