我正在使用带有Azure Active Directory的Open Id Connect进行身份验证。我还为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();
}
用户进行身份验证并返回到您的服务器后,即可访问该属性。
var result = await HttpContext.AuthenticateAsync(OpenIdConnectDefaults.AuthenticationScheme);
var value = result.Properties.Items["id"];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句