#c# #asp.net-core #asp.net-core-mvc #asp.net-core-identity
Вопрос:
Asp.net В Core 3 есть несколько разных условностей — оголитесь со мной.
У меня есть контроллер, который я пытаюсь использовать промежуточное программное обеспечение для аутентификации. Я использовал «строительные леса» по умолчанию при создании нового основного проекта в VS2019. Использовал шаблон проекта MVC для asp.net ядро 3.1.
У меня есть контроллер с тегом [Авторизовать].
[Authorize]
public class AgentController : Controller
{
}
В прошлой жизни.. Я знал, где установить перенаправление по умолчанию в случае несанкционированного доступа.
Это вынуждает перенаправлять на /Идентификацию/вход-набор страниц razor по умолчанию, который, похоже, встроен. Мне нужно, чтобы он перенаправился на определенный контроллер/действие. Учетная запись/Вход в систему
Вот мой стартап:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<AgentUser>(options => options.SignIn.RequireConfirmedAccount = false)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddControllersWithViews();
//services.AddRazorPages();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/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.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
}
Ответ №1:
Вы можете настроить конкретный путь в ConfigureServices
(в Startup
):
services.ConfigureApplicationCookie(config =>
{
config.Cookie.Name = "Identity.Cookie";
config.LoginPath = "/Account/SignIn";
});
Когда вы добавляете services.AddRazorPages()
и services.AddControllersWithViews()
в то же время, вам нужно избегать одинаковой маршрутизации.