跨多个应用服务计划替代Microsoft Azure 应用服务上的机器密钥



我正在尝试在 Web.Config 中设置 ASP.Net MVC 应用程序的机器密钥,但听起来 Azure 会自动为每个 Web 应用程序预配唯一的机器密钥并覆盖我的 Web.config 中的内容。

我想这样做的原因是因为我有一个应用服务女巫用作身份验证应用。 这是用户登录的位置。而且我还有很多其他应用程序将使用第一个应用程序提供的令牌。这样做将在一个唯一的位置对用户进行身份验证,用户将能够在门户中的某些模块中导航,这些模块仅进行身份验证一次。它在本地主机或托管在 IIS 中运行良好,但在 Azure 托管应用服务上,即使我在Application_Start时重置计算机密钥配置部分,似乎也无法正确读取计算机密钥或其他内容。

我尝试了此处描述的解决方案,但正如@gorillapower所说

似乎这对我们不起作用。我们正在使用 .NET 4.6.1 并使用带有应用程序的 OWIN 启动。UseCookieAuthentication(( 并使用 Redis 缓存会话提供程序。我实现了上述操作,但用户在插槽交换后不断注销。有什么想法吗?

此外,在应用服务计划 (ASP( 的多个实例上运行 ASP.NET 应用程序时,无需担心 machineKeys,因为应用服务平台将在所有实例中使用相同的 machineKeys,因此无需对应用程序进行任何更改。

但就我而言,我们的应用都位于不同的应用服务计划中。因此,此解决方案不适用。

关于这个问题的任何线索? 谢谢

生成机器密钥并添加到 web.config 文件中

它将适用于 IIS 或 Azure Web 应用服务中的 Web 场/负载均衡器。 注意:它仅在使用IAppBuilder->UseCookieAuthentication-> CookieAuthentication选项时才有效

<system.web>
<authentication mode="None" />
<machineKey validation="HMACSHA256" decryption="AES" validationKey="D6883865C0490AFA4907A046E838DD2C7B13B636694B552630C13770701B944A" decryptionKey="2C3C48562E6FE018E71B69BDB27D06048A573C094A962AA9A1547C3D874C63B0" />

最新更新