/// <summary> /// 进行认证,返回用户名 /// </summary> /// <param name="autoRedirect"></param> /// <param name="ticket"><see cref="ITicket"/> 对象。</param> /// <returns>用户名</returns> private static string GetLogOnName(bool autoRedirect, out ITicket ticket) { string userID = string.Empty; ticket = CheckAuthenticatedAndGetTicket(autoRedirect); if (ticket != null) { if (PassportClientSettings.GetConfig().IdentityWithoutDomainName) { userID = ticket.SignInInfo.UserID; } else { userID = ticket.SignInInfo.UserIDWithDomain; } } return(userID); }
private static IPrincipal SetPrincipal(string userID, ITicket ticket) { IPrincipal principal = GetPrincipalInSession(userID); if (principal == null) { LogOnIdentity loi = new LogOnIdentity(userID); string identityID = string.Empty; if (PassportClientSettings.GetConfig().IdentityWithoutDomainName) { identityID = loi.LogOnNameWithoutDomain; } else { identityID = loi.LogOnName; } principal = PrincipalSettings.GetConfig().GetPrincipalBuilder().CreatePrincipal(identityID, ticket); HttpCookie cookie = new HttpCookie(Common.GetPrincipalSessionKey()); cookie.Expires = DateTime.MinValue; CookieCacheDependency cookieDependency = new CookieCacheDependency(cookie); SlidingTimeDependency slidingDependency = new SlidingTimeDependency(Common.GetSessionTimeOut()); PrincipalCache.Instance.Add( Common.GetPrincipalSessionKey(), principal, new MixedDependency(cookieDependency, slidingDependency)); } PrincipaContextAccessor.SetPrincipal(principal); return(principal); }