我正在使用与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"];