【问题标题】:Windows Identity FoundationWindows 身份基础
【发布时间】:2017-08-06 21:28:39
【问题描述】:

我正在使用 Windows Identity Foundation Framework 3.5。我已经将它安装在我的开发盒上,并且一切正常。我的问题是生产服务器。

有没有办法不在生产服务器上安装框架而仍然让 MVC 应用程序工作?现在我收到错误:

未解析成员 Microsoft.IdentityModel.Claims.ClaimsPrincipal,Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 的类型。

这是意料之中的,因为框架不存在,显然简单的答案是安装框架,但这不在我的控制范围内。

我尝试过的东西,将引用Microsoft.IdentityModel.dllMicrosoft.IdentityModel.WindowsTokenService.dllMicrosoft.IdentityModel.resources.dllMicrosoft.IdentityModel.WIndowsTokenService.resources.dll直接添加到项目中,并将它们设置为复制到输出目录。这不起作用。

有什么建议吗?

【问题讨论】:

  • 您是否仔细检查过引用是否指向您项目中的 dll?当您部署到服务器时,dll 是否仍然存在于正确的位置?这是什么服务器 - 2003 / 2008 / 2012?服务器上的框架是什么版本?
  • 感谢您的回复。是的,引用是对项目内部的 dll 的引用。我无法直接访问部署框,因此我无法验证部署后的 DLL 是否位于正确的位置,但我现在正在努力验证这一点。我不知道服务器的 Windows 版本,但我猜是 2008 年。同样,这台服务器对我来说是一个黑匣子,所以我目前知道框架版本。可悲的是,我在努力尝试“修复”错误,但对部署框的可见性为零。
  • 基本上,我问的问题的要点是,是否需要包含任何其他 DLL 以使 Windows Identity Framework 能够“工作”。
  • 您需要的 WIF 文件(您可能已经知道)位于 C:\Program Files\Reference Assemblies\Microsoft\Windows Identity Foundation\v3.5。缺少的类型在您已经拥有的 Microsoft.IdentityModel.dll 中。
  • @user959729 你愿意启发我们其他人吗?

标签: c# wif


【解决方案1】:

希望这可以帮助其他有同样问题的人,Windows Identity Foundation 现在作为 nuget 包提供,您可以使用以下方式安装:

Install-Package Microsoft.IdentityModel 

http://www.nuget.org/packages/Microsoft.IdentityModel/

【讨论】:

  • 最后一次更新是 2012 年 8 月。这仍然是最新的软件包吗?
【解决方案2】:

您可以将 DLL 添加到 MVC 应用程序的 bin 目录中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2012-09-03
    相关资源
    最近更新 更多