我已经使用开放ID Connect建立了具有Cookie身份验证的应用,如下所示:
builder.AddOpenIdConnect(options =>
{
options.SaveTokens = true;
});
我现在想从请求中获取cookie并对其进行查询以从中获取值。
我目前正在这样做:
_httpContextAccessor.HttpContext.Request.Cookies[".AspNetCore.Cookies"]
但是cookie的值目前已加密以保护。
问:我可以使用什么方法/对象来解密cookie以获取令牌?
答案 0 :(得分:2)
为了访问特定令牌,您可以使用GetTokenAsync
。这是同时获取 access_token 和 id_token 的示例:
var accessToken = await _httpContextAccessor.HttpContext.GetTokenAsync("access_token");
var idToken = await _httpContextAccessor.HttpContext.GetTokenAsync("id_token");
此方法使用默认的身份验证方案,我在您的代码中相应地设置了假定。如果不是,则存在GetTokenAsync
的重载,它也会占用scheme
。