SuperAPI AI 工具集

asp-net-core-identity-patterns

通用与其它

查看项目

更新于 10-16 01:11

技能介绍

用途:在 ASP.NET Core(尤其 Razor Pages)中实现用户注册、登录、角色、声明、双因素认证、外部登录与授权时,提供生产级安全模式,强调 OWASP 合规、最小权限、可观测性与最小攻击面,目标 .NET 8+ 且启用可空引用类型。

主要能力:核心配置使用 AddDefaultIdentity<IdentityUser>() 或 AddIdentity<IdentityUser, IdentityRole>(),链式调用 AddEntityFrameworkStores<ApplicationDbContext>() 与 AddDefaultTokenProviders();在选项中强制强密码(长度 12、需数字/大小写/非字母数字、6 个唯一字符)、锁定(15 分钟、5 次失败)、要求确认账户与邮箱、唯一邮箱及允许的用户名字符。中间件顺序为 UseRouting 后接 UseAuthentication、UseAuthorization、MapRazorPages,并启用 UseHsts 与 UseHttpsRedirection。授权优先策略而非角色,通过 AddPolicy 定义 RequireRole 或 RequireClaim,再用 [Authorize(Policy = "...")] 应用。Cookie 加固包括 HttpOnly、SecurePolicy.Always、SameSite.Strict、滑动过期与登录/拒绝路径。外部提供程序通过 AddAuthentication().AddGoogle(...) 等接入,并用 SignInManager.GetExternalAuthenticationSchemesAsync() 动态展示。可扩展 IdentityUser 添加自定义属性,登录后补充声明。测试用 Moq 模拟 UserManager/SignInManager,集成测试用 WebApplicationFactory,监控用 OpenTelemetry/App Insights。

使用方式:用 dotnet aspnet-codegenerator identity 选择性脚手架所需页面;在 PageModel 注入 UserManager、SignInManager、ILogger;表单加 @Html.AntiForgeryToken() 与 [ValidateAntiForgeryToken];注册处理器生成邮箱确认令牌,未确认时不自动登录。

适用场景:需要生产级认证与授权的 ASP.NET Core Web 应用。

限制与反模式:资料未提供具体收费、平台或效果数据;避免在生产禁用邮箱确认、使用弱密码策略、代码内硬编码密钥、到处用 [Authorize(Roles="Admin")]、忽略锁定、发布完整 Identity UI 静态资源。参考 Microsoft Docs、OWASP .NET Cheat Sheet 与 .NET 10 Identity 指标文档。