我有一个在 .NET 4.5.1 上运行的 ASP.NET WebForms 应用程序,并且一直在使用 FormsAuthentication API 的基于 cookie 的身份验证(但是不使用 Identity API;相反,我“手动”管理用户和会话)。此应用程序在多个服务器上运行,为了使 cookie 在所有服务器上工作,我已将 web.config 文件中所有服务器的机器密钥设置为相同的值。
为了能够与在 .NET Core 1.0 上运行的 MVC 应用程序共享身份验证 cookie,我正在从 FormsAuthentication API 转移到基于 Katana/OWIN 的 cookie 身份验证。虽然我已经按照https://github.com/blowdart/idunno.CookieSharing上的步骤在单台机器上进行了身份验证和共享 cookie,但我不确定如何在服务器之间共享密钥。所有示例都通过指向包含密钥文件的路径来设置基于 cookie 的身份验证。如果我能够手动生成密钥并将其复制到所有服务器,这将起作用。但是,我不知道如何生成这些密钥文件(以及文档似乎没有提到如何做到这一点)。正如一些示例所表明的那样,将密钥文件放在共享文件夹中是不可能的,因为服务器位于完全独立的网络上(这可能会在未来发生变化,但不是现在)。
有没有办法通过我的设置在多个服务器之间共享密钥(即不可能共享文件夹)?