如何在重定向控制器内使用打开ID连接传递给AAD的参数



我正在使用与Azure Active Directory的打开ID连接进行身份验证。我还将参数设置为OpenIDConnectChallengeProperties,以便可以在Controller Action(重定向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();
        }

用户身份验证并返回服务器后,您就可以访问属性。

var result = await HttpContext.AuthenticateAsync(OpenIdConnectDefaults.AuthenticationScheme);
var value = result.Properties.Items["id"];

最新更新