Microsoft.IdentityModel dll在哪里?

55

我已经安装了Windows身份验证基础结构,但找不到Microsoft.IdentityModel dll。根据Azure Hands-on-Labs的说法,它应该出现在VS2010中的“添加引用”中。然而,它并没有出现。

我还查看了 c:\Program Files(x86)\Windows Identity Foundation* ,但在那里也没有找到(或者是64位程序文件夹中也没有)。

求助!


我已经通过在记事本中向csproj文件添加以下引用来解决了这个问题 :(<Reference Include="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" /> 它可以正常工作... - Moory
10个回答

53

你可以考虑使用NuGet Windows Identity Foundation。只需将其添加到项目中,就可以开始使用了!这是MS拥有的NuGet之一,因此应该得到相应的维护。

编辑:在Windows 8中,可以通过在控制面板>所有控制面板项>程序和功能>打开或关闭Windows功能中启用Windows Identity Foundation来进行安装(启用)。该功能是Windows Identity Foundation 3.5。上面答案中提供的安装程序无法在Windows 8上运行。


4
在Win8的程序/功能中,这个工具提示显示它适用于带有.NET 3.5或4.0的WIF。但是,WIF已经集成到.NET 4.5中,因此如果您在VS2012/.NET 4.5中进行开发,只需添加对System.IdentityModel/System.IdentityModel.Services的引用即可。 - pelazem
包含这个 NuGet 包使我能够在不使用虚拟机的情况下将网站部署到 Azure,并仍然可以访问 microsoft.identitymodel.dll - 谢谢! - Goose
当你不确定时,使用Nuget! - jhilden
2
在Windows 10中,这不再是Windows功能。在Windows 10上使用NuGet包选项非常出色。 - Koen Zomers
3
@KoenZomers,实际上这是Windows 10的一个功能。右键单击任务栏Windows标志,选择“程序和功能”,点击“打开或关闭Windows功能”,在弹出的对话框中勾选“Windows身份验证基础结构3.5”旁边的复选框即可。 - Monty Wild

52

11
首先需要安装Windows身份验证基础框架。下载链接为http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eb9c345f-e830-40b8-a5fe-ae7a864c4d76&displaylang=en。 - angularrocks.com
4
可以将其作为 NuGet 添加到您的解决方案/项目中,请参阅我的答案获取链接。 - Taras Alenin
请注意,在Windows 10上,您不能再安装Windows Identity Foundation,这现在是一个需要启用的Windows功能:https://dynamicsofdynamicscrm.com/2015/09/11/quick-tipenabling-windows-identity-foundation-on-windows-10-machines/ - Rémi Gaudin

41

如果您已经安装了WIF SDK,请尝试以下方法:

C:\Program Files\Reference Assemblies\Microsoft\Windows Identity Foundation\v3.5\
   Microsoft.IdentityModel.dll

12

对于Windows 10:

右键单击任务栏Windows徽标,选择“程序和功能”。

点击“启用或关闭Windows功能”

在弹出的对话框中,向下滚动或调整窗口大小,并勾选“Windows身份验证基础结构3.5”旁边的复选框

点击确定。

这将激活所需的DLL文件。显然,Windows 10将所有这些功能保存在Windows安装中,以便可以根据需要激活和停用它们。


6
我曾经遇到这个问题,但是通过从“C:\Program Files\Reference Assemblies\Microsoft\Windows Identity Foundation\v3.5\Microsoft.IdentityModel.dll”引用 DLL 解决了它。
前往参考属性并将 DLL 的 “Copy Local” 设置为 True。DLL 现在将包含在 Azure 包中。

2
在Windows 8.1 64位中,查看C:\Windows\ADFS文件夹。

1
@PlasmaPower 你必须佩服这种精神。 :) - Konrad Viltersten

2
在Windows 8及以上版本中,可以通过命令行启用此功能,而不需要明确下载/安装任何内容,只需运行以下命令:
dism /online /Enable-Feature:Windows-Identity-Foundation

然后在您的Windows磁盘根目录下运行以下命令来查找文件:

dir /s /b Microsoft.IdentityModel.dll

1

1
这只是一个链接。请提供具体的答案。 - Shiplu Mokaddim
请阅读"如何撰写好的答案?" - Scott Solmer
我同意提供与问题相关的摘录或总结。话虽如此,命名空间映射指针正是我所需要的...所以+1 :-). - Zephan Schroeder

1

我曾经遇到过类似的问题。我收到了一个异常信息:“Type is not resolved for member 'Microsoft.IdentityModel.Claims.ClaimsPrincipal, Microsoft.IdentityModel, Version = 3.5.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'."。

我尝试从Visual Studio运行ASP.NET应用程序,该应用程序引用了本地副本的Microsoft.IdentityModel.dll。

我不想安装SDK,所以我必须将库复制到目录“C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0”中,并重新启动Visual Studio。


1
虽然这并不重要,但你只需要重新启动ASP.NET开发服务器,而不是整个Visual Studio。 - sblom

0

安装以下两个链接

  1. Windows Identity Foundation

    注意: (对于Vista和Windows Server 2008 >>> Windows6.0和 对于Windows 7和Windows Server 2008 R2,>>> Windows6.1。)

  2. Windows Identity Foundation SDK

    注意: 下载Visual Studio 2008和.NET 3.5的3.5版本,下载Visual Studio 2010和.NET 4.0的4.0版本。

然后,您才能获得名为Microsoft.IdentityModel的程序集。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接