【问题标题】:Can't Add System.IdentityModel package/reference无法添加 System.IdentityModel 包/参考
【发布时间】:2015-04-21 11:22:19
【问题描述】:

长话短说,我想为我的 WCF 服务创建身份验证。

目标框架:.NET 4.5。

我正在关注这个User Name Password Validator

我正在尝试从 UserNamePasswordValidator 类继承,但 VS2013 一直给我这个错误:

我的代码:

 public class UserNamePassValidator : System.IdentityModel.UserNamePasswordValidator
{
}

我得到的错误:

错误 1 ​​命名空间“System”中不存在类型或命名空间名称“IdentityModel”(您是否缺少程序集引用?)

我尝试了几种不同的方法来解决这个问题:(它们都没有帮助我)

  1. 我已经安装了 Windows Identity Foundation 和 WIF SDK。
  2. 我已使用此路径手动添加 dll:C:\Program Files\Reference Assemblies\Microsoft\Windows Identity Foundation\v3.5\ Microsoft.IdentityModel.dll
  3. 我尝试在 Nuget 包管理器中搜索该包,但什么也没有出现,只有 System.IdentityModel.Token(我也引用了它,但没有帮助)。

我在这里缺少什么?它可能是我看不到的明显的东西......

【问题讨论】:

    标签: c# asp.net .net wcf asp.net-identity


    【解决方案1】:

    如果 Target Framework 是 4.5,则无需下载任何包以使用 WIF。 System.IdentityModel 已完全集成到 Framework 4.5,它是 WIF 在面向 Framework 4.5 及更高版本时使用的类型。

    此外,您应该继承此类型:System.IdentityModel.Selectors.UserNamePasswordValidator:

    public class UserNamePassValidator : System.IdentityModel.Selectors.UserNamePasswordValidator
    {
     public override void Validate(string userName, string password)
        {
            return;
        }
    }​

    您可以参考以下链接:

    1-UserNamePasswordValidator

    2-What do I need to build a claims-aware wcf service in VS 2013

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多