访问存储在 .net Core cookie 中的数据
Access data stored within an .net Core cookie
我已经使用 open id Connect 设置了一个带有 cookie 身份验证的应用程序,如下所示:
builder.AddOpenIdConnect(options =>
{
options.SaveTokens = true;
});
我现在想从请求中获取 cookie 并询问它以从中获取值。
我目前正在这样做:
_httpContextAccessor.HttpContext.Request.Cookies[".AspNetCore.Cookies"]
但是,cookie 的值当前已加密以进行保护。
问:我可以使用什么方法/对象来解密我的 cookie 以获得我的令牌?
为了访问特定的令牌,您可以使用GetTokenAsync
。这是同时获取 access_token 和 id_token:
的示例
var accessToken = await _httpContextAccessor.HttpContext.GetTokenAsync("access_token");
var idToken = await _httpContextAccessor.HttpContext.GetTokenAsync("id_token");
此方法使用默认身份验证方案,我假设 在您的代码中相应地设置了该方案。如果不是,则 GetTokenAsync
的重载也需要 scheme
.
我已经使用 open id Connect 设置了一个带有 cookie 身份验证的应用程序,如下所示:
builder.AddOpenIdConnect(options =>
{
options.SaveTokens = true;
});
我现在想从请求中获取 cookie 并询问它以从中获取值。
我目前正在这样做:
_httpContextAccessor.HttpContext.Request.Cookies[".AspNetCore.Cookies"]
但是,cookie 的值当前已加密以进行保护。
问:我可以使用什么方法/对象来解密我的 cookie 以获得我的令牌?
为了访问特定的令牌,您可以使用GetTokenAsync
。这是同时获取 access_token 和 id_token:
var accessToken = await _httpContextAccessor.HttpContext.GetTokenAsync("access_token");
var idToken = await _httpContextAccessor.HttpContext.GetTokenAsync("id_token");
此方法使用默认身份验证方案,我假设 在您的代码中相应地设置了该方案。如果不是,则 GetTokenAsync
的重载也需要 scheme
.