WCF使用数据库对客户端进行身份验证

WCF使用数据库对客户端进行身份验证,wcf,authentication,Wcf,Authentication,我有一个WCF服务,应该为几个客户提供服务 WCF将有一个与数据库通信的数据访问层 这是我设计理念的一部分: 如您所见-每个客户端将连接到第一个WCF服务以获取信息(获取产品、更新产品),并以发布方式连接到第二个WCF服务,因此它将能够接收有关其所需不同内容的通知 我在数据库中有一个包含系统中所有用户的“用户”表。 (有一名管理员、一名普通用户和一名技术人员) 我的问题是-如何从客户端“登录”到数据库 我目前的想法是,在服务中有一个名为“Connect(username,password)”的

我有一个WCF服务,应该为几个客户提供服务

WCF将有一个与数据库通信的数据访问层

这是我设计理念的一部分:

如您所见-每个客户端将连接到第一个WCF服务以获取信息(获取产品、更新产品),并以发布方式连接到第二个WCF服务,因此它将能够接收有关其所需不同内容的通知

我在数据库中有一个包含系统中所有用户的“用户”表。 (有一名管理员、一名普通用户和一名技术人员)

我的问题是-如何从客户端“登录”到数据库

我目前的想法是,在服务中有一个名为“Connect(username,password)”的功能,当客户端连接时,它将在数据库中传递用户名和密码以进行身份验证,并且只有经过身份验证后,客户端才会开始发送命令

问题是——任何人都可以编写自己的客户端,连接到我的服务并运行其他功能,而无需验证。我可以通过在服务中保存来解决这个问题,无论客户机是否已通过身份验证

但是,有没有更好的解决方案,仅仅是在服务中使用“连接”功能


希望有简单而有效的方法。

您应该创建一个自定义用户名和密码验证器,该验证器派生自
UserNamePasswordValidator
抽象类,并实现
Validate()
方法。然后,您可以根据需要验证提供的用户名和密码。要了解有关设置的更多信息,请阅读本文。

我们的要求是,客户机需要输入用户名和密码,服务将根据数据库进行验证。你向我展示的这个方法对这有好处吗?客户端从何处“获取”它发送到服务的用户名和密码?这是一种自定义验证方法,因此是的,它适用于针对存储在数据库中的凭据使用。至于客户端从何处“获取”凭据,这取决于您的客户端设计。谢谢!你是说可以在客户端弹出一个窗口,要求他输入用户名和密码,然后发送到服务?当然可以,但要由你来设计,使这些凭证以优雅的方式进入WCF服务。看看本文中引用的示例应用程序。