#asp.net-core #.net-core #razor-pages
Вопрос:
Я использую аутентификацию файлов cookie в URL-адресе:https://docs.microsoft.com/en-us/aspnet/core/безопасность/аутентификация/cookie?просмотр=aspnetcore-5.0
Я использую HttpContext.SignInAsync
для успешного пользователя, а затем открываю другие страницы razor, которые имеют [Authorize]
атрибут, перенаправленный на путь входа в систему, и сообщаю мне, что я не вошел в систему.
почему?
страница запуска:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
и услуги:
services.AddRazorPages();
services.AddDbContext<Models.DBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("dbContext")));
services.AddScoped<Models.DBContext>();
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Manage/Login";
options.LogoutPath = "/Manage/Login";
options.ExpireTimeSpan = TimeSpan.FromMinutes(3600);
});
Комментарии:
1. Можете ли вы поделиться своим классом запуска?
2. Попробуй
app.UseAuthentication(); app.UseAuthorization();
3. уже добавил его
4. В вашем коде это
app.UseAuthorization();app.UseAuthorization();
5. @Yinqiu да, спасибо . Я такая дура.
Ответ №1:
Измените свой код на:
app.UseAuthentication();
app.UseAuthorization();