Я работаю над сайтом ASP.Net Core 2.1 со страницами Razor, впервые использую страницы Razor.Но я хотел бы изменить домашнюю страницу или целевую страницу.Поэтому, если пользователь не вошел в систему, сайт должен перенаправить на страницу / Account / Login в папке Areas, но если пользователь вошел в систему, он должен перейти на страницу с именем DataManagement, как показано ниже в папке pages.
Мне уже вшито удостоверение, и я попробовал что-то вроде ниже в Configure Services:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "");
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
И вметод настройки:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Безрезультатно.
РЕДАКТИРОВАТЬ Мой StartUp.cs
Открытый класс Startup {public Startup (конфигурация IConfiguration){Конфигурация = конфигурация;}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("Connection")));
services.AddIdentity<ApplicationUser, ApplicationRole>(
options => options.Stores.MaxLengthForKeys = 128)
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultUI()
.AddDefaultTokenProviders()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddMvc().AddRazorPagesOptions(opts =>
{
opts.Conventions.AddPageRoute("/DataManagement", "/");
opts.Conventions.AddPageRoute("/DataManagement", "home");
opts.Conventions.AddPageRoute("/DataManagement", "index");
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ApplicationDbContext context, RoleManager<ApplicationRole> roleManager, UserManager<ApplicationUser> userManager, IServiceProvider serviceProvider)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseMvc();
}