示例#1
0
        public async Task <IActionResult> Index()
        {
            Logger.LogInformation("Logging is on!");
            var accessToken = await HttpContext.Authentication.GetTokenAsync("access_token");

            var model = new UiAppSettings
            {
                IsWebpackDisabled = Configuration.IsWebpackDisabled(),
                CustomApiUrl      = Configuration.GetApiUrl(),
                EnvironmentType   = Configuration.GetEnvironmentType(),
                StsUrl            = Configuration.GetStsUrl(),
                MapDNSNames       = this.mapDNSes,
                Version           = Configuration.GetVersionWithBuildNumber(),
                VersionPrefix     = Configuration.GetVersionPrefix(),
                IdentityToken     = await HttpContext.Authentication.GetTokenAsync("id_token"),
                AccessToken       = accessToken,
                UserInfo          = userInfoService.GetUserInfo()
            };

            if (model.UserInfo == null || !model.UserInfo.UserOrganization.IsAssigned())
            {
                model.UserInfo = new VmUserInfo()
                {
                    NoAccess = true
                };
            }
            else
            {
                model.UserInfo.NoAccess = !UserHasViewAccess();
            }
//            if (model.UserInfo == null || !model.UserInfo.UserOrganization.IsAssigned())
//            {
//                await HttpContext.Authentication.SignOutAsync("Cookies");
//                await HttpContext.Authentication.SignOutAsync("oidc");
//                return RedirectToAction("UserMissingOrganization");
//            }
            ViewBag.Version = model.Version;
            UserIdentityResponse userIdentification = null;

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
                var response = client.GetStringAsync(configuration.StsAddress + "/connect/userinfo").Result;
                try
                {
                    userIdentification = JsonConvert.DeserializeObject <UserIdentityResponse>(response);
                }
                catch { userIdentification = null; }
            }
            if (userIdentification == null)
            {
                await HttpContext.Authentication.SignOutAsync("Cookies");

                await HttpContext.Authentication.SignOutAsync("oidc");

                return(Redirect("/"));
            }
            return(View(model));
        }
        public void Post_CalledWithUser_ReturnsUserReponse()
        {
            // Given
            var response = new UserIdentityResponse { Item = new UserIdentity { Name = "email" } };
            var request = new UserIdentityRequest { Item = new UserIdentity { Name = "email" } };
            _client.Setup(b => b.Post<UserIdentityResponse>(It.IsAny<Uri>(), request, "application/json")).Returns(response);
            var userIdentityResource = new UserIdentityResource(_client.Object);

            // When
            var result = userIdentityResource.Post(request);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
        public async void PutAsync_CalledWithUser_ReturnsUserReponse()
        {
            // Given
            var response = new UserIdentityResponse {
                Item = new UserIdentity {
                    Name = "email", Id = 123
                }
            };
            var request = new UserIdentityRequest {
                Item = new UserIdentity {
                    Name = "email", Id = 123
                }
            };

            _client.Setup(b => b.PutAsync <UserIdentityResponse>(It.IsAny <Uri>(), request, "application/json")).Returns(TaskHelper.CreateTaskFromResult(response));
            var userIdentityResource = new UserIdentityResource(_client.Object);

            // When
            var result = await userIdentityResource.PutAsync(request);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
        public void Post_CalledWithUser_ReturnsUserReponse()
        {
            // Given
            var response = new UserIdentityResponse {
                Item = new UserIdentity {
                    Name = "email"
                }
            };
            var request = new UserIdentityRequest {
                Item = new UserIdentity {
                    Name = "email"
                }
            };

            _client.Setup(b => b.Post <UserIdentityResponse>(It.IsAny <Uri>(), request, "application/json")).Returns(response);
            var userIdentityResource = new UserIdentityResource(_client.Object);

            // When
            var result = userIdentityResource.Post(request);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
        public async void PostAsync_CalledWithUser_ReturnsUserReponse()
        {
            // Given
            var client   = new Mock <IRestClient>();
            var response = new UserIdentityResponse {
                Item = new UserIdentity {
                    Name = "email"
                }
            };
            var request = new UserIdentityRequest {
                Item = new UserIdentity {
                    Name = "email"
                }
            };

            client.Setup(b => b.PostAsync <UserIdentityResponse>(It.IsAny <Uri>(), request, "application/json", It.IsAny <string>(), It.IsAny <string>())).Returns(TaskHelper.CreateTaskFromResult(response));
            var userIdentityResource = new UserIdentityResource(client.Object);

            // When
            var result = await userIdentityResource.PostAsync(request);

            // Then
            Assert.Equal(result, response);
        }