Как получить параметры, переданные в AAD с помощью Open ID Connect в контроллере перенаправления? - PullRequest
1 голос
/ 08 июля 2019

Я использую Open Id Connect с Azure Active Directory для проверки подлинности. Я также устанавливаю параметр для OpenIdConnectChallengeProperties, чтобы я мог получить этот параметр в действии контроллера, которое является URL перенаправления. Я не нашел никакой информации о том, как это сделать. Мой код выглядит следующим образом.

AuthController.cs

 [Route("auth/signin")]
        [HttpPost]
        public ActionResult SignIn([FromBody] RequestParams requestParams)
        {
            Guid guid = new Guid();
            _cache.Set(guid, requestParams);
            var baseURL = Request.Host;
            var redirectURL = "https://" +  baseURL + "/auth/redirect";
            var properties = new OpenIdConnectChallengeProperties();
            properties.SetParameter("id",guid);
            properties.RedirectUri = redirectURL;
            return Challenge(properties, AzureADDefaults.OpenIdScheme);
        }

[Route("auth/redirect")]
        [HttpGet]
        public async Task<string> HandleAADRedirect()
        {
            if (User.Identity.IsAuthenticated)
            {
                string accessToken = await HttpContext.GetTokenAsync("access_token");
                string idToken = await HttpContext.GetTokenAsync("id_token");
            }
            return _cache.Get("").ToString();
        }

1 Ответ

0 голосов
/ 08 июля 2019

Как только пользователь аутентифицируется и возвращается на ваш сервер, вы можете получить доступ к свойству.

var result = await HttpContext.AuthenticateAsync(OpenIdConnectDefaults.AuthenticationScheme);
var value = result.Properties.Items["id"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...