Jea*_*ean 23 asp.net iis asp.net-identity asp.net-core
我正在使用ASP.Net Core和MS Identity,我试着理解为什么在每次部署后登录用户都会被注销.我在IIS 8.5上运行
我一直在尝试此线程中的方法(设置静态机器密钥) ASP.NET Identity 2在部署后 通过在IIS UI中的服务器级别生成静态密钥并将以下内容添加到网站的web.config来重新登录:
<system.web>
<machineKey validationKey="XXX"
decryptionKey="XXX"
validation="SHA1" decryption="AES"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在:
但我也这样说:
什么可以导致用户注销?有关如何避免这种情况的任何想法?
Jea*_*ean 15
(克里斯评论后,解决方案分成了单独的答案)
我找到了一个保持登录状态的解决方案,它可以在网站停止/启动时保持不变,并更新网站源文件夹:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
// This helps surviving a restart: a same app will find back its keys. Just ensure to create the folder.
.PersistKeysToFileSystem(new DirectoryInfo("\\MyFolder\\keys\\"))
// This helps surviving a site update: each app has its own store, building the site creates a new app
.SetApplicationName("MyWebsite")
.SetDefaultKeyLifetime(TimeSpan.FromDays(90));
}
Run Code Online (Sandbox Code Playgroud)
使用这些附加行和机器密钥集,登录数据将在站点停止/启动和IIS服务器重新启动后保留,并且如果站点已重建.
更多信息:https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview
justserega提出的更多内容:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/ ? tabs = aspnetcore2x#data-protection
身份验证使用数据保护堆栈。如果未配置数据保护,密钥将保存在内存中,并在应用程序重新启动时丢弃。
如果应用程序重新启动时密钥环存储在内存中:
您必须配置数据保护,这里有更多信息https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?tabs=aspnetcore2x#data-protection
| 归档时间: |
|
| 查看次数: |
3335 次 |
| 最近记录: |