You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET内置身份认证模块对应的Controller与View存储位置查询

内置身份功能实现逻辑

你看到的注册登录功能属于 ASP.NET Core Identity 框架的内置能力,这些代码默认没有生成到你的项目目录,是因为被封装在Microsoft.AspNetCore.Identity.UI这个Razor类库(RCL)中随框架预装。
和你预想的MVC Controller+View模式不同,这套内置UI是用Razor Pages实现的,核心逻辑依赖两个核心服务完成:

  • SignInManager<TUser>:处理登录、登出、双因素校验等会话相关逻辑
  • UserManager<TUser>:处理用户创建、密码修改、角色分配等用户数据相关逻辑
    所有用户数据默认通过EF Core存储在你项目配置的数据库中,身份校验逻辑由注入的Identity中间件全局处理。

提取可自定义的视图和逻辑代码

要修改这套功能,你需要用官方的脚手架工具把对应的代码生成到本地项目中,两种操作方式可选:

Visual Studio 操作步骤

  • 右键你的项目,依次选择「添加」>「新搭建的基架项目」
  • 在弹出的窗口左侧分类选择「身份」,点击「添加」按钮
  • 按需勾选你要自定义的页面(比如登录、注册、忘记密码等,也可全选),选择你项目对应的ApplicationDbContext后再次点击「添加」
    生成完成后你会在项目根目录看到Areas/Identity文件夹,所有页面和后台逻辑都在该目录下可直接修改。

.NET CLI 操作步骤

如果不用Visual Studio,用命令行也可以完成生成:

  1. 先全局安装脚手架工具:
    dotnet tool install -g dotnet-aspnet-codegenerator
  2. 在你的项目根目录执行生成命令,替换下面的上下文类名为你项目中实际的类名即可:
    dotnet aspnet-codegenerator identity -dc 你的项目名.Data.ApplicationDbContext

如果你更习惯用MVC的Controller+View模式开发,也可以完全不用脚手架生成的Razor Pages,自己写Controller调用上面提到的SignInManager和UserManager服务实现自定义的身份逻辑,Identity的所有底层API都对外开放可以直接调用。


内容的提问来源于stack exchange,提问作者Bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:54:03