【问题标题】:asp.net core mvc change default Identity area routesasp.net core mvc 更改默认身份区域路由
【发布时间】:2019-06-09 05:35:51
【问题描述】:

asp.net core 2.2 Identity 是通过

添加的
services.AddIdentity<ApplicationUser, ApplicationRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders()
        .AddDefaultUI();  

登录设置为“/Identity/Account/Login”:

options.LoginPath = "/Identity/Account/Login";

现在如何更改通过 Startup.cs 添加的 Identity 区域中的路由,以便我可以执行以下操作:

https://www.example.com/admin 而不是https://www.example.com/identity/account/login

https://www.example.com/register 以便它转到 HomeController->RegisterAction。这将允许我捕获 HomeController->RegisterAction 并将其重定向到 HomeController->IndexAction 以便禁用注册

【问题讨论】:

标签: c# asp.net-core-mvc asp.net-identity asp.net-core-2.2


【解决方案1】:

如果有人搜索 asp.net core mvc 2.2 的答案:

当您调用 DefaultUI 时,您无需修改​​任何特定页面或控制器。

您必须支架要修改的页面。

  1. 鼠标右键点击项目
  2. Add --> New Scaffolded Item(如果被禁用,停止调试/运行)
  3. 在左侧选择身份并单击添加
  4. 选择您的布局页面 (~/Views/Shared/_Layoutcshtml) 以获得正确的布局
  5. 选择要覆盖的页面,例如帐户\注册
  6. 选择您的数据上下文类(或单击 [+] 创建一个新的)
  7. 点击添加

现在您将在 /Areas/Identity/Pages/Account/Register.cshtml 中看到

展开 Register.cshtml 并打开文件 Register.cshtml.cs。 ('代码隐藏')

现在如果你想禁用注册,你可以替换

public void OnGet(string returnUrl = null)
{
  ReturnUrl = returnUrl;
}

与:

public IActionResult OnGet(string returnUrl = null) => RedirectToPage("/Account/Login"); // disable registrations

附加信息:

如果任何 [MSFT] 正在阅读此内容:如果您可以通过 Startup.cs 禁用注册或更改重定向路由而无需搭建脚手架(这将允许您更新软件包而无需拥有你曾经在版本 x 上搭建的 UI。

【讨论】:

    猜你喜欢
    • 2020-08-04
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多