如何使登录页成为ASP .NET Core 2.1中的默认路由?

时间:2018-07-24 19:43:29

标签: c# asp.net-identity asp.net-mvc-routing razor-pages asp.net-core-2.1

我是ASP .NET Core 2.1的初学者,并且正在研究使用ASP.NET Core 2.1进行个人身份验证的项目。我想将登录页面作为默认路由,而不是“首页/索引”:

            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");

任何帮助我如何将其更改为ASP .NET Core 2.1,因为Login现在被用作剃刀页面而不是MVC操作视图。

7 个答案:

答案 0 :(得分:6)

ConfigureServices 方法中使用它。

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?}");

        });

答案 1 :(得分:1)

我通过在ConfigureServices函数(Startup.cs)中使用此代码来解决此问题

services.AddMvc().AddRazorPagesOptions(options => {
     options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "/Account/Login");
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

答案 2 :(得分:0)

这可能会有所帮助,我自己无需更改默认页面

https://exceptionnotfound.net/setting-a-custom-default-page-in-asp-net-core-razor-pages/

答案 3 :(得分:0)

只需在您的配置中使用它。这会将AuthorizeAttribute添加到您的页面

services.AddMvc()
.AddRazorPagesOptions(options =>
{
    options.Conventions.AuthorizePage("/Home/Index");
});

或更改默认路由:

services.AddMvc().AddRazorPagesOptions(options =>
{
    options.Conventions.AddPageRoute("/Employees/Index", "");
});

如有必要,请参见此页面:here

答案 4 :(得分:0)

将此代码插入Startup.cs中的ConfigureServices()

{
   services.AddMvc().AddRazorPagesOptions(options =>
   {
       //Registering 'Page','route-name'
       options.Conventions.AddPageRoute("/Account/Login", "");
   });
}
  • 记住要删除“ / Account / Login”操作声明上的所有路由名称

答案 5 :(得分:0)

一段时间后,我解决了它。需要为 AREAS =>

添加 ALLOW
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddRazorPagesOptions(options =>
        {
            options.AllowAreas = true; //--working after add this line
            options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "");
        });

答案 6 :(得分:0)

添加授权策略,以使应用程序默认情况下要求用户对abc文件夹下的页面进行身份验证,而不要求在abc文件夹下的某些公共页面。

services.AddRazorPages().AddRazorPagesOptions(options =>
          {
             options.Conventions.AuthorizePage("/abc");
             options.Conventions.AllowAnonymousToPage("/abc/PublicPage");
           });