Authentication 如何在重定向控制器内检索传递给具有Open ID Connect的AAD的参数?

Authentication 如何在重定向控制器内检索传递给具有Open ID Connect的AAD的参数?,authentication,azure-active-directory,openid-connect,Authentication,Azure Active Directory,Openid Connect,我正在使用OpenID连接Azure Active Directory进行身份验证。我还为OpenIdConnectChallengeProperties设置了一个参数,以便可以在控制器操作(重定向URL)中检索此参数。 我没有找到任何关于如何做到这一点的信息。 我的代码如下 AuthController.cs [Route("auth/signin")] [HttpPost] public ActionResult SignIn([FromBody] Requ

我正在使用OpenID连接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();
        }
[路由(“身份验证/登录”)]
[HttpPost]
公共操作结果签名([FromBody]RequestParams RequestParams)
{
Guid=新Guid();
_cache.Set(guid、requestParams);
var baseURL=Request.Host;
var redirectURL=“https://“+baseURL+”/auth/redirect”;
var properties=new OpenIdConnectChallengeProperties();
SetParameter(“id”,guid);
properties.RedirectUri=重定向URL;
返回挑战(属性,AzureADDefaults.OpenIdScheme);
}
[路由(“身份验证/重定向”)]
[HttpGet]
公共异步任务handleADREDIRECT()
{
if(User.Identity.IsAuthenticated)
{
string accessToken=await HttpContext.GetTokenAsync(“访问令牌”);
string idToken=await-HttpContext.GetTokenAsync(“id_-token”);
}
返回_cache.Get(“”.ToString();
}

一旦用户验证并返回到您的服务器,您就可以访问该属性

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

一旦用户进行身份验证并返回到您的服务器,您就可以访问该属性

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