0

我使用自定义身份验证实现了 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");
        }
    }
4

1 回答 1

0

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

查看ASP.NET 的 Membership以获得支持基于角色的安全性的数据库架构示例。更好的是,您可以将 ASP.NET 的 Membership 与 WCF 集成。请参阅本文的“控制对公共 Web 托管服务的访问和使用” 。您还可以阅读 Resnick、Crane 和 Bowen 撰写的 Essential WCF 中关于安全性的章节,其中描述了在 WCF 服务中支持身份验证/授权的许多方法。

于 2012-11-26T16:10:38.803 回答