Я новичок в ядре asp.net, и у меня проблема с моим сайтом.
Я искал все больше и больше, но тщетно.
Мое приложение использует asp.net core 2. * и состоит из двух областей: Admin и User
Я создал страницу входа в систему для каждой области, и аутентификация в коде файла startup.cs приведена ниже.
Приложение успешно запущено, но моя проблема в том, что при переходе на страницу, прошедшую проверку подлинности, затем нажатии в браузере,
веб-сайт перейдет на страницу входа. Когда я перезагружаю эту страницу, веб-сайт загружает страницу, прошедшую проверку подлинности (требуемую страницу, которую я хочу вернуть с помощью кнопки назад).
Это означает, что (User.Identity.IsAuthenticted
переменная имеет значение false, когда браузер переходит на предыдущую страницу), но когда браузер снова делает новый запрос на эту страницу, эта переменная будет равна true и правильно отображать страницу.
Я понимаю проблему, но не могу решить эту проблему. Кто-нибудь может мне помочь и сэкономить мое время?
public void ConfigureServices(IServiceCollection services)
{
string UserScheme = "UserScheme";
services.AddDbContext<FastDoEntities>(options =>
options.UseSqlServer(Configuration.GetConnectionString("FastDoEntities")));
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("FastDoEntities")));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
// Add application services.
services.AddTransient<IEmailSender, EmailSender>();
services.AddMvc();
services.AddAuthorization(autorizationOptions =>
{
autorizationOptions.AddPolicy("UserPolicy", policy =>
{
policy.AuthenticationSchemes.Add(UserScheme);
policy.RequireAuthenticatedUser();
policy.RequireRole("User");
}).
autorizationOptions.AddPolicy("AdminPolicy", policy =>
{
policy.AuthenticationSchemes.Add(AdminScheme);
policy.RequireAuthenticatedUser();
policy.RequireRole("Admin");
});
});
services.AddAuthentication()
.AddCookie("UserScheme", CookieBuilder =>
{
CookieBuilder.Cookie.Path = "/";
CookieBuilder.LoginPath = "/User/Login";
CookieBuilder.AccessDeniedPath = "/User/AccessDenied";
CookieBuilder.Cookie.Name = "UserCookie";
})
.AddCookie("AdminScheme", CookieBuilder =>
{
CookieBuilder.Cookie.Path = "/";
CookieBuilder.LoginPath = "/Admin/Login";
CookieBuilder.AccessDeniedPath = "/Admin/AccessDenied";
CookieBuilder.Cookie.Name = "AdminCookie";
});
}