无法将ASP.NET标识模型移动到另一个程序集中

本文关键字:另一个 程序 程序集 集中 移动 模型 ASP NET 标识 | 更新日期: 2023-09-27 17:59:15

我已经尝试按照这个链接中描述的步骤将我的标识类从web应用程序中提取到它自己的类库中。

http://www.umbraworks.net/bl0g/rebuildall/2013/10/22/Moving_ASP_NET_Identity_model_into_another_assembly

我做如下:

  1. 创建了一个web表单项目,并将其命名为3TierExample
  2. 创建了名为3TierExample.Model的新类库
  3. 已将NuGet中的Microsoft ASP.NET Identity EntityFramework包安装到3TierExample.Model
  4. identityModel.cs移到新的类库(3TierExample.Model)
  5. 3TierExample中添加了对3TierExample.Model的引用

然后,对于identityModel.cs,我使用以下参考:

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
using System.Web;
using System;
using _3TierExample.Models;

我的命名空间如下:

namespace _3TierExample.Models{…}

然而,当我完成时,我得到以下错误:

I: ''3TierExample''3TierExample''Default.aspx:ASP.NET运行时错误:无法加载文件或程序集"Microsoft.AspNet.Identity.Core,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856a364e35"或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配
(HRESULT中的异常:0x80131040)
I: ''3 TierExample''3 Tierexample''Default.aspx 1 1 3 TierSample

元数据文件'I:''找不到"TierExample''3TierExample.Model''bin''Debug''3TierExample.Model.dll"

未能找到类型或命名空间名称"HttpRequest"(是否缺少using指令或程序集引用?)I:''3第三示例

未能找到类型或命名空间名称"HttpResponse"(是否缺少using指令或程序集引用?)I:''3第三示例

如果我去web项目,我会看到对新创建的类库的引用在那里,所以我不知道怎么可能得到第一个错误(第3个)。然后,我认为第二个错误是由于找不到程序集引用而导致的。为什么?参考资料在那里!?

有人能帮忙吗?

提前感谢!!

无法将ASP.NET标识模型移动到另一个程序集中

存在程序集冲突。

当您创建项目时,它可能有旧版本的Asp.netIdentity程序集。您在类lib-proj中安装了最新的Asp.net标识包。如果你想将Asp.net Identity Context从主项目中分离出来,你的web项目中不需要这个框架。

您可以在创建web项目时设置无身份验证,以确保在引用Asp.net Identity Class Lib项目时不会发生冲突。您可能需要从示例Web项目中复制IdentityModels.cs,以便在类库项目中使用。