c# - 在 ASP.NET Core 中访问 _Layout.cshtml 中的 cookie

标签 c# asp.net authentication cookies asp.net-core

登录成功时,我尝试将身份验证 key 存储到我的 cookie 中:

HttpContext.Response.Cookies.Append("Bearer", accessToken, cookieMonsterOptions);

所以在 Controller 类中这是有效的。我可以轻松创建和读取我的 cookie。 但现在我想检查一下,如果存在,则读取 _Layout.cshtml 中 cookie 的值,并显示登录用户的名称 - 或登录链接。 但是我如何在部分_Layout.cshtml中读取我的cookie?

string value = HttpContext.Request.Cookies.Get("Bearer");

不起作用。它尝试将 System.Web 添加到我的使用中,或者说 HttpContext 是静态的并且需要引用来访问 Request

有什么建议或想法吗?

最佳答案

在 ASP.NET Core 中,不再有静态 HttpContext 的概念。新的 Microsoft Web 框架中的依赖注入(inject)规则。关于 View ,有 @inject 指令用于访问已注册的服务,例如 IHttpContextAccessor 服务 ( https://docs.asp.net/en/latest/mvc/views/dependency-injection.html )。

使用 IHttpContextAccessor 您可以获取 HttpContext 和 cookie 信息,如本例所示。

 @inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor

 @{
    foreach (var cookie in HttpContextAccessor.HttpContext.Request.Cookies)
    {
        @cookie.Key  @cookie.Value
    }
}

关于c# - 在 ASP.NET Core 中访问 _Layout.cshtml 中的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38945678/

相关文章:

c# - Winforms,CefSharp : Authentication popup for basic authentication not show

c# - 击中时让玩家闪现

c# - mysql % 由于数据库文件路径中存在空格

javascript - 如何将值从 View 传递到 MVC ASP .NET 中的另一个 Controller

reactjs - 在 NextAuth 中,是什么触发了到 "/api/auth/signout"的路由?

python - 无法使用 python Minds api 进行身份验证

iphone - 自动注销iphone应用程序

c# - 从 JSON 反序列化大量属性

c# - 按子列表属性排序父对象列表

仅在命令行构建时出现 Asp.Net aspparse 循环引用错误