Я пытаюсь сделать удостоверение личности ie в подобласти, подобной домену.
Если у меня три пользователя,
После того, как любой пользователь вошел в систему, он может получить доступ к другому поддомену с тем же поваром ie, когда пользователь регистрируется впервые.
Пример: если пользователь user1 вошел в систему, он может ввести субдомен user2.domain.com или субдомен user3.domain.com с тем же именем user1 cook ie. и так далее для любых пользователей.
Проблема: После входа в систему с user1 и go для user2 удостоверение личности ie не существует, почему ?? Я использовал asp. net mvc Core2.2 и Entity Framework 2.6
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.PersistKeysToFileSystem(GetKyRingDirectoryInfo())
.SetApplicationName("SharedCookieApp");
services.ConfigureApplicationCookie(options => {
options.Cookie.Name = ".AspNet.SharedCookie";
options.Cookie.Path = "/";
});
services.AddAuthentication().AddCookie(options =>
{
options.Cookie.Name = ".SharedCookie";
options.Cookie.Domain = "localhost:44390";
options.DataProtectionProvider =
DataProtectionProvider.Create(new DirectoryInfo("keyRingPath"));
});
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.Lax;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("uStoreOnlineConnection")));
services.AddDefaultIdentity<ExtendIdentityUser>(options =>
{
options.Password.RequiredLength = 8;
options.Password.RequireUppercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequiredUniqueChars = 0;
options.Password.RequireLowercase = false;
}).AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddScoped<IUnitOfWork, UnitOfWork>();
services.AddScoped<IExtendIdentityUser, ExtendIdentityUserRepository>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
//app.UseRewriter(new RewriteOptions().Add(new RouteSubDomainRule("localhost:44390", RouteSubDomainBehavior.Rewrite)));
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
private DirectoryInfo GetKyRingDirectoryInfo()
{
string applicationBasePath = System.AppContext.BaseDirectory;
DirectoryInfo directoryInof = new DirectoryInfo(applicationBasePath);
string keyRingPath = Configuration.GetSection("AppKeys").GetValue<string>("keyRingPath");
do
{
directoryInof = directoryInof.Parent;
DirectoryInfo keyRingDirectoryInfo = new DirectoryInfo($"{directoryInof.FullName}{keyRingPath}");
if (keyRingDirectoryInfo.Exists)
{
return keyRingDirectoryInfo;
}
}
while (directoryInof.Parent != null);
throw new Exception($"key ring path not foun");
}