这可能是一个简单的问题,我希望至少是这样。
我已经开始研究 ASP.NET Core 的 Release Candidate,我可以看到很多配置已经从旧的 web.config 文件中移出并移入 JSON 结构文件(以及 XML 和您可能想自己编写的任何其他中间件)。
我还没有想出如何做的一件事是在旧的 web.config 方法中非常简单,保护您网站的一些基本组件,如 cookie。
以前我们会在 web.config 中设置 secure
、httpOnly
等,当部署时,一个漂亮的小转换文件会为我们修改值最后吐出新文件。仔细阅读之后,似乎 web.config 现在几乎已经死了,那么我们如何才能获得相同的结果呢?
我知道我们可以根据某些变量(例如环境)是否设置为 DEV、STAGING、PRODUCTION 等来加载不同的配置文件,但这似乎只是用某种可以满足所有意图和目的的转换来替换转换除了它的实际加载方式?
我是不是漏掉了什么,还是把自己搞得一团糟?
最佳答案
对于在您的应用程序中手动创建的通用 cookie,您在创建它时控制安全标志 - 例如:
Response.Cookies.Append(
"COOKIE_NAME",
"COOKIE_VALUE",
new CookieOptions()
{
Path = "/",
HttpOnly = false,
Secure = false
}
);
在这里,将 HttpOnly 设置为 true 将阻止客户端 JS 访问 cookie 值,将 Secure 设置为 true 将仅允许通过 HTTPS 提供/接收 cookie。
当您将 cookie 添加到响应时,没有应用默认值,如 the source code for the ResponseCookies class 中所示.
对于创建和使用自己的 cookie 的各种中间件(例如您在回答中提到的 Session 中间件),它们可能有自己的配置选项来控制它们自己创建的那些 cookie 的这些标志,但这将对您在应用程序其他地方创建的 cookie 没有影响。
关于http - Cookie 和 ASP.NET Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166075/