public static DGATokenResponse RetrieveDGAAccessToken(string tokenString, DiscoveryResponse tokenEndpoint) { DGATokenResponse token = null; Task.Run(async() => { token = await _RetrieveDGAAccessToken(tokenString, tokenEndpoint); }).Wait(); return(token); }
public User DGALogin(string userName, string password) { var accountName = string.Empty; accountName = string.Format("{0}\\{1}", Take2Domain, userName); IdentityModel.Client.IdentityModelExtensions.TokenResponse token = Take2RetrieveToken(accountName, password); DGATokenResponse dgaToken = null; if (token != null) { dgaToken = Take2RetrieveDGAToken(token.AccessToken); } if (dgaToken != null) { var identifiedUser = CreateVirtualUser(dgaToken, userName); var result = AuthenticationManager.LoginVirtualUser(identifiedUser); } var user = AuthenticationManager.GetActiveUser(); //this.pipelineService.RunLoggedIn(user); return(user); }
private User CreateVirtualUser(DGATokenResponse token, string userName) { var virtualUser = AuthenticationManager.BuildVirtualUser(string.Format("{0}\\{1}", Take2Domain, userName), true); virtualUser.Profile.FullName = string.Format("{0} {1}", token.given_name, token.family_name); virtualUser.Profile.Email = token.email; virtualUser.Profile.Save(); if (token.role.Equals("member", StringComparison.InvariantCultureIgnoreCase) && token.is_member_in_good_standing) { virtualUser.Roles.Add(Sitecore.Security.Accounts.Role.FromName(@"take2\member")); } return(virtualUser); }
private static async Task <DGATokenResponse> _RetrieveDGAAccessToken(string token, DiscoveryResponse disco) { var client = new HttpClient(); DGATokenResponse dgaTokenResponse = null; try { //var disco = await getDisco(); client = new HttpClient(); client.SetBearerToken(token); //var resp = client.GetStringAsync(disco.UserInfoEndpoint).Result; var resp = await client.GetStringAsync(disco.UserInfoEndpoint).ConfigureAwait(false); dgaTokenResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <DGATokenResponse>(resp); } catch (Exception e) { throw e; } return(dgaTokenResponse); }