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

Asp.Net Core项目Identity配置及项目引用相关技术咨询

问题解决梳理

嘿,针对你的场景,我整理了几个关键的解决步骤:

1. 先满足SDK与编译上下文的要求

  • 打开你的AdminPanel项目的.csproj文件,确认第一行的SDK声明为:
    <Project Sdk="Microsoft.NET.Sdk.Web">
    
  • 检查文件中是否存在<PreserveCompilationContext>false</PreserveCompilationContext>配置项,如果有直接删除即可(默认情况下该属性无需手动设置,只要不设为false就符合要求)。

2. 统一Identity用户类与DbContext的引用

你的Api类库已经定义了AppUser和对应的IdentityDbContext<AppUser>,AdminPanel无需再使用ApplicationUser,直接引用Api类库的类型即可:

  • 先在AdminPanel项目中添加对Api类库的项目引用(右键AdminPanel → 添加 → 项目引用 → 选中你的Api类库)。
  • 修改Startup.cs中的Identity配置代码,把ApplicationUser替换为Api类库的AppUser,同时指定对应的DbContext:
    // 先引入Api类库的命名空间,示例:
    using YourApiProject.Models; // 假设AppUser在该命名空间下
    using YourApiProject.Data; // 假设DbContext在该命名空间下
    
    // 调整AddIdentity配置:
    services.AddIdentity<AppUser, IdentityRole>(config => {
        config.User.RequireUniqueEmail = true;
        config.Password.RequiredLength = 6; // 补全你需要的密码规则
        // 可添加其他如密码复杂度、账号锁定等配置
    })
    .AddEntityFrameworkStores<YourDbContextName>() // 替换为Api类库中DbContext的实际类名
    .AddDefaultTokenProviders();
    

3. 确保DbContext的连接配置正确

因为AdminPanel是启动项目,连接字符串需配置在它的appsettings.json中,然后在Startup.cs里注册DbContext(建议放在AddIdentity之前):

services.AddDbContext<YourDbContextName>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

记得把DefaultConnection替换成你在appsettings.json中定义的连接字符串名称。

内容的提问来源于stack exchange,提问作者Vali.Pay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:43:00