我使用ASP MVC版本1.1.2在Azure AppService上运行3个ASP MVC Core webapps。每个应用程序除主站点外还有1个临时插槽(总共6个地址)。这个问题影响了6个中的4个(不确定这是否相关,但它很奇怪)。据我所知,当用户未经过身份验证时,我从cookie身份验证中获取了错误的URL。
所有网站上的身份配置是:
services.Configure<IdentityOptions>(options =>
{
// Password settings
options.Password.RequireDigit = true;
options.Password.RequiredLength = 8;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = true;
options.Password.RequireLowercase = false;
// Lockout settings
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(30);
options.Lockout.MaxFailedAccessAttempts = 10;
// Cookie settings
options.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromMinutes(30);
options.Cookies.ApplicationCookie.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Account/LogIn");
options.Cookies.ApplicationCookie.LogoutPath = "/Account/LogOff";
options.Cookies.ApplicationCookie.CookieName = "ApplicationAdmin";
options.Cookies.ApplicationCookie.SlidingExpiration = true;
// User settings
options.User.RequireUniqueEmail = true;
});
截至昨天下午,它按预期工作。如果用户未经过身份验证并转到应用程序中的任何URL,则应用程序会将用户路由到:
client.mydomaim.com/Account/LogIn
从上面显示的设置中可以预期。从昨天下午开始(最近没有更新应用程序),如果用户未经过身份验证,将返回的URL是:
client:80/Account/LogIn
我将子域恢复为:80,这也发生在其他子域上。当然这会导致DNS错误,因为'client:80'不是有效的URL奇怪的是,有2个临时插槽可以使用完全相同的代码继续正常工作。
如果我在浏览器中手动输入完整登录地址,请执行以下操作:
client.mydomain.com/Account/LogIn
它按预期工作,我可以一如既往地登录并继续使用该应用程序。在此过程的某个位置,根URL会发生变化。这是缓存在某个地方吗?
可能有用的其他信息:
任何想法都将不胜感激。我也有Azure支持票,但还没有收到他们的回复。
谢谢你, 布赖恩