无法添加System.IdentityModel包/引用

时间:2015-04-21 11:22:19

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

长话短说我想为我的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(我也引用它但没有帮助)。
  4. 我在这里缺少什么?它可能显而易见,我看不到......

1 个答案:

答案 0 :(得分:0)

如果目标框架是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