具有动态用户名和密码的WCF自定义身份验证

时间:2012-11-26 13:22:01

标签: c# wcf wcf-security

我使用自定义身份验证实现了WCF服务,当我将常量字符串的用户名和密码传递给UsernameAuthentication类,Validate方法并在那里验证时,它工作正常。但有没有办法可以传递动态用户名,密码并验证它们。我该如何实现它并在这个类中访问这些值。

class UsernameAuthentication : UserNamePasswordValidator
    {        
        public override void Validate(string userName, string password)
        {            
            var ok = (userName == "DynamicUserName") && (password == "DynamicPassWord");
            if (ok == false)
                throw new AuthenticationException("u/p does not match");
        }
    }

1 个答案:

答案 0 :(得分:0)

Validate方法中,您必须查询自己的用户数据库并检查用户名和密码是否有效。通常,您将使用存储所有用户数据的RDBMS或XML文件。

请查看ASP.NET's Membership以获取支持基于角色的安全性的数据库架构示例。更好的是,您可以将ASP.NET的成员资格与WCF集成。 Hva看看这个article的“控制对公共Web托管服务的访问和使用”。您还可以阅读Resnick,Crane和Bowen关于Essential WCF安全性的章节,其中介绍了支持WCF服务中的身份验证/授权的多种方法。