C# 无法访问已处理的对象。\r\n对象名称:';UserManager`1-调用CreateAncy时(用户,型号.密码)
我正在从事.net核心项目。 我的项目结构有4个项目C# 无法访问已处理的对象。\r\n对象名称:';UserManager`1-调用CreateAncy时(用户,型号.密码),c#,asp.net-core,asp.net-identity,claims-based-identity,ef-core-3.1,C#,Asp.net Core,Asp.net Identity,Claims Based Identity,Ef Core 3.1,我正在从事.net核心项目。 我的项目结构有4个项目 Student_数据库-(包含数据库表模型和ApplicationNDBContext) 学生实体-(包含所有视图侧模型) 学生服务-(从这里处理所有数据库操作。它连接到数据库。 例如:IUserService和UserService) 学生网络-(控制器和所有方法、逻辑以及所有视图在此项目中) 我已经实现了实体框架核心。并尝试使用Usermanager来插入数据。 现在,当我从控制器(Student_Web)调用方法“CreateAsync
public类用户服务:IUserService
{
#区域属性
私有只读IDbContext _context;
私有只读用户管理器_UserManager;
专用只读角色管理器(RoleManager);
#端区
#区域构造函数
公共用户服务(
IDbContext上下文
,UserManager UserManager
,RoleManager RoleManager
{
_上下文=上下文;
_userManager=userManager;
_roleManager=roleManager;
}
#端区
#区域方法
公共异步任务创建(新用户模型)
{
布尔结果=假;
尝试
{
var user=await\u userManager.FindByNameAsync(model.UserName);
if(user==null)
{
model.Password=GeneratePassword();
用户=新应用程序用户
{
//Id=10,
用户名=model.UserName,
Email=model.UserName,
AccessFailedCount=0,
FirstName=model.FirstName,
LastName=model.LastName,
CreatedBy=2,
CreatedDate=DateTime.UtcNow,
活动=错误
};
var returnResult=await_userManager.CreateAsync(用户、模型、密码);
if(returnResult.successed)
{
returnResult=wait _userManager.AddToRoleAsync(user,_rolemanger.Roles.Where(x=>x.Id==model.RoleId)。选择(x=>x.Name.FirstOrDefault());
}
if(model.CompanyId!=null)
{
foreach(model.CompanyId中的var项)
{
var userMap=new UserCompanyMapping();
userMap.UserId=user.Id;
userMap.CompanyId=项目;
_usercompanyMappingPository.Insert(userMap);
}
}
result=returnResult.successed;
}
}
捕获(例外情况除外)
{
返回false;
}
返回结果;
}
#端区
}
//创业班
公营创业
{
公共启动(IConfiguration配置)
{
配置=配置;
}
公共IConfiguration配置{get;}
//此方法由运行时调用。请使用此方法将服务添加到容器中。
public void配置服务(IServiceCollection服务)
{
services.AddMvc(选项=>
{
var policy=new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
option.Filters.Add(新授权过滤器(策略));
});
services.AddDbContextPool(选项=>
options.UseSqlServer(Configuration.GetConnectionString(“DefaultConnection”));
services.AddIdentityCore();
//注册依赖项附加服务
services.AddAppServices();
服务.附加性(选项=>
{
options.User.RequireUniqueEmail=true;
options.Password.RequireNonAlphanumeric=false;
})
.AddRoles()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
services.configureApplicationOkie(选项=>
{
option.LoginPath=“/login”;
option.AccessDeniedPath=“/Login/AccessDenied”;
});
//寄存器依赖性
注册自动制图器(服务);
注册服务(服务);
}
//此方法由运行时调用。请使用此方法配置HTTP请求管道。
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他的
{
app.UseExceptionHandler(“/Home/Error”);
}
app.ConfigureRequestPipeline();
app.UseStaticFiles();
app.UseAuthentication();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(端点=>
{
//登记所有路线
EngineContext.Current.Resolve().RegisterRoutes(端点);
});
//app.UseEndpoints(端点=>
//{
//endpoints.MapControllerRoute(
//名称:“默认”,
//模式:“{controller=Login}/{action=Index}/{id?}”);
//});
}
专用无效注册表服务(IServiceCollection服务)
{
//Get类libraryGetAssembly(ty)
var serviceLibraries=Assembly.Load(“Student.Services”)
.GetTypes()
.Where(x=>x.IsClass&&x.GetInterfaces().Any()&&x.Namespace.Contains(“.Services.Services”))
.ToList();