【发布时间】:2020-04-20 13:09:55
【问题描述】:
我有一个在 Windows 2016 服务器 IIS 上运行的 dotnet core 3.1 项目。 登录后,会创建一个 cookie,但如果客户端重新启动他的 PC,cookie 仍然存在,但应用程序重定向到登录并且不记得用户。 Cookie 看起来无效。
在同一台服务器上,我们还有一个使用 .net 框架 4.5.1 构建的旧版本项目,我们从未遇到过有关会话或 cookie 的问题。
首先我想它可以来自客户端浏览器,但如果它来自客户端,那么两个应用程序都应该遇到同样的问题。
那么还有什么可能呢? 你有什么建议?
【问题讨论】:
-
你能分享你的示例代码吗?你的机器钥匙设置是什么?它看起来像一些机器密钥配置问题。使用代码:
public void ConfigureServices(IServiceCollection services){ var environment = services.BuildServiceProvider().GetRequiredService<IHostingEnvironment>(); services.AddDataProtection() .SetApplicationName($"my-app-{environment.EnvironmentName}") .PersistKeysToFileSystem(new DirectoryInfo($@"{environment.ContentRootPath}\keys")); ... } -
这可能是 iis 问题吗? Windows 2016 服务器。这两个应用程序在同一个 iis 网站下是相同的。 (默认网站)我们通过 ip 地址在外网访问它们。其中一个指向根 127.0.0.1,另一个位于应用程序 127.0.0.1/V2 中这会影响 cookie 吗?