加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何将MVC 5 IdentityModels.cs移动到单独的程序

发布时间:2020-12-15 20:53:13 所属栏目:asp.Net 来源:网络整理
导读:我想知道是否有人遇到了我正在尝试将ApplicationUser移动到Models项目中的问题(所有其他模型都驻留在其中,包括与Users表相关的模型). 我的测试MVC 5解决方案由一个Web项目和两个类库组成:一个用于数据访问层(DAL),另一个用于模型.我在所有三个项目中都引用
我想知道是否有人遇到了我正在尝试将ApplicationUser移动到Models项目中的问题(所有其他模型都驻留在其中,包括与Users表相关的模型).

我的测试MVC 5解决方案由一个Web项目和两个类库组成:一个用于数据访问层(DAL),另一个用于模型.我在所有三个项目中都引用了AspNet.Identity.EntityFramework.
在我的DAL类中,我实现了Repository模式和UnitOfWork. UnitOfWork扩展了IdentityDbContext< ApplicationUser>. ApplicationUser:IdentityUser位于Models类库中.

在我的Web项目中,UnitOfWork使用Autofac DI进行实例化.
对于常规控制器,我定义了一个继承自Controller的基类,并将IUnitOfWork作为构造函数中的参数.所有控制器都从我的自定义基本控制器继承.
我遇到了AccountController的问题.它有两个构造函数:一个没有参数,似乎实例化ApplicationDbContext,另一个将UserManager作为参数.

无参数构造函数给了我大部分的悲伤.我尝试了很多东西:让accountcontroller继承自我的自定义基本控制器,然后尝试从Controller类继承它.充其量我成功地使我的解决方案编译,但当我测试应用程序并填写用户注册表单时,我得到’对象未实例化’消息.当我调试时,我看到AccountController中的第二个构造函数被调用,但UserManager在那里为null.

有任何想法吗?我真的很感激有人对此的聪明投入.

解决方法

看一下 SimpleSecurity Project.这个项目将ASP.NET Identity与Web应用程序分离并放置 ApplicationUser into an assembly separate from the web application.该项目还有一个使用SimpleMembership的版本.对于ASP.NET Identity,请查看AspNetIdentity文件夹.安全功能的程序集位于AspNetIdentity / SimpleSecurity.AspNetIdentity中,参考Web应用程序位于AspNetIdentity / SimpleSecurity.AspNetIdentity / RefApp中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读