找不到命名空间System.IdentityModel.Services

时间:2017-07-05 08:08:19

标签: c# .net authentication

我试图通过实施UserNamePasswordValidator来提供用户身份验证。我添加了Microsoft.IdentityModelSystem.IdentityModel.Tokens.ValidatingIssuerNameRegistry nuget包。我使用的是.Net framework 4.5.2,但是当我在我的班级UserNamePasswordValidator中实施UserAuthentication时,我收到并收到错误"类型或命名空间名称选择器没有存在于命名空间System.IdentityModel中(你是否遗漏了一些参考文献)。"我用谷歌搜索了它,但无法找到解决方案,我错过了什么吗?下面是我的UserAuthentication班级

 public class UserAuthentication : System.IdentityModel.Selectors.UserNamePasswordValidator
{
    public override void Validate(string userName, string password)
    {
        try
        {
            if (userName == "test" && password == "test123")
            {
                Console.WriteLine("Authentic User");
            }
        }
        catch (Exception ex)
        {
            throw new FaultException("Unknown Username or Incorrect Password");
        }
    }
}

1 个答案:

答案 0 :(得分:5)

添加nuget包是不够的(在您的情况下也是不必要的),您需要在项目中引用dll。在解决方案资源管理器中查找“引用”列表。

右键单击 - >添加参考 - >输入System.IdentityModel到搜索框 - >选择正确的dll - >单击确定 - >很高兴