这可能是一个简单的问题,我希望至少是这样.
我开始寻找到ASP.NET核心的候选发布版,我可以看到,很多的配置已经搬出旧web.config文件,并到JSON结构的文件(以及XML和其它的中间件你可能想写自己).
我还没有弄清楚如何做的一件事是在旧的web.config方法中这么简单,保护你的网站的一些基本组件,如cookie.
以前我们会设定secure,httpOnly等里面的web.config以及当它来部署一个不错的转换文件将修改的值,我们和吐在年底前把新文件.在阅读了一下后,似乎web.config现在几乎已经死了,那么我们如何才能实现相同的结果呢?
我知道我们可以根据是否某些变量,如环境,设置为DEV,分期,生产等加载不同的配置文件,但这似乎与东西是一个变换的所有意图和目的,除了在如何更换只是变换它真的装了吗?
我在这里错过了一些东西,还是让自己陷入了困境?
我正在将.net 4.7 MVC项目转换为.net core 2,尽可能地保留尽可能多的代码.这个项目有一个BaseService是建立一个AuthCookie多数民众赞成在整个应用一些其他服务消费.
// Create
public HttpCookie AuthCookie { get; set; } = new HttpCookie(AuthUtils.CookieName);
// Consume
if (AuthCookie?.Value != null) { ... }
Run Code Online (Sandbox Code Playgroud)
在.net 4.7中,HttpCookie该类包含在System.Web命名空间中,但似乎并未以相同的方式存在于.net core 2中.在中,cookie是在控制器的上下文之外构建和处理的.
我见过: 为什么我不能使用HttpContext或HttpCookie?(Asp.Net Core 1.0)
这似乎没有解决这个问题..net核心中的身份验证处理的根本区别是如此之大以至于无法处理此案例?
在完整的.NET框架中,我们支持多值cookie.例如,cookie可以有多个值:
HttpCookie aCookie = new HttpCookie("userInfo");
aCookie.Values["userName"] = "patrick";
aCookie.Values["lastVisit"] = DateTime.Now.ToString();
Run Code Online (Sandbox Code Playgroud)
另请参阅MSDN上有关MSDN和ASP.NET Cookie概述的文档HttpCookie.Values.
使用ASP.NET Core,多值cookie似乎消失了.没有HttpCookie.Values并且HttpRequest.Cookies返回一个IRequestCookieCollection像 dictionaryfrom string到string
我现在应该如何在ASP.NET Core中创建和读取多值cookie?我怎样才能阅读在Full ASP.NET中创建的多值cookie并在ASP.NET Core中读取它们?
有人可以解释如何在ASP.NET Core rc2应用程序中存储和获取cookie吗?我只能找到有关旧方法HttpContext.Response.Cookies.Get和Add方法的过时信息,而Core中仍然没有这些信息.此外,HttpCookie该类似乎也不存在.
什么是新的cookie类,如何获取和添加一个?
(注意:我不是专门用于认证cookie,只是一般数据cookie)
我使用ASP.NET Core创建了一个示例Web应用程序,以测试Cookie的存储和检索。不幸的是,我无法存储Cookie。
我已经为我的问题阅读了以下问题:
但是不幸的是我没有找到一个好的答案。
我将首先请求IndexA操作来存储cookie。该代码运行无任何错误,但是当我请求IndexB操作时。找不到指定的值
这是IndexA动作:
public IActionResult IndexA()
{
Response.Cookies.Append("mykey", "myvalue",
new CookieOptions()
{
Expires = DateTime.Now.AddMinutes(10)
});
return View();
}
Run Code Online (Sandbox Code Playgroud)
这是IndexB操作:
public IActionResult IndexB()
{
var cookie = Request.Cookies["mykey"];
return View();
}
Run Code Online (Sandbox Code Playgroud)
这是启动类:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection …Run Code Online (Sandbox Code Playgroud)