我有两个在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限制或与免费服务计划有关?
谢谢!
答案 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";
});`