Web应用程序之间的Asp.Net Core DataProtection无法在Azure上运行

时间:2019-02-19 01:29:43

标签: c# asp.net azure asp.net-core .net-core

我有两个在Free tier服务计划上运行的Azure上的WebApp。在某些情况下,我会从WebApp A生成一个身份重置密码令牌,并在WebApp B中使用它。

在Startup.cs中,我在ConfigureServices方法中具有如下数据保护设置:

services.AddDataProtection().SetApplicationName("appname");

它在本地运行良好,但是当我在这种情况下尝试重置密码时,在Azure上收到一条无效令牌错误消息。

我正在使用Identity Core运行ASP.NET Core 2.1。此DataProtection设置是否有Azure限制或与免费服务计划有关?

谢谢!

2 个答案:

答案 0 :(得分:0)

APS.NET(核心)在IIS服务器和Azure Web Apps上的工作方式有所不同。尽管这并不是完全的限制(在这种情况下,您会得到一些错误),但从技术上讲,有些事情不起作用。据我了解,您在Web Apps中没有自己的虚拟服务器,但是有一个服务器池,随时可以将任何服务器专用于您的任务。这会使某些事情无法正常工作,如果您发现差异,则几乎可以肯定是由于这个原因。

还要注意,测试是否仅限于免费套餐将花费您不到1美元的费用,因此最好进行测试而不是提出要求,只是我不知道免费版的任何API限制层。

答案 1 :(得分:0)

如果要在应用程序之间共享Cookie ASP.Net核心ASP.net应用程序请尝试本文 https://docs.microsoft.com/en-us/aspnet/core/security/cookie-sharing?view=aspnetcore-2.2`

services.AddDataProtection()
    .PersistKeysToFileSystem(GetKeyRingDirInfo())
    .SetApplicationName("SharedCookieApp");

services.ConfigureApplicationCookie(options => {
    options.Cookie.Name = ".AspNet.SharedCookie";
});`