Exemple #1
0
        public static DGATokenResponse RetrieveDGAAccessToken(string tokenString, DiscoveryResponse tokenEndpoint)
        {
            DGATokenResponse token = null;

            Task.Run(async() => { token = await _RetrieveDGAAccessToken(tokenString, tokenEndpoint); }).Wait();
            return(token);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }