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

标签 wcf authentication

我有一个 WCF 服务,它应该为多个客户端提供服务。
WCF 将有一个将与数据库通信的数据访问层。
这是我设计理念的一部分:My Design
My Design
如您所见 - 每个客户端将连接到第一个 WCF 服务以获取信息(获取产品、更新产品),并以 pub\sub 方式连接到第二个 WCF 服务,因此它将能够接收有关不同事物的通知它想要。
我在数据库中有一个“用户”表,其中包含系统中的所有用户。
(有管理员、普通用户和技术人员)。
我的问题是 - 如何从客户端“登录”到数据库?
我目前的想法 - 在名为 的服务中有一个功能'连接(用户名,密码)' 当客户端连接时 - 它将传递用户名和密码以在数据库中进行身份验证,并且只有经过身份验证 - 客户端才会开始发送命令。
问题在于 - 任何人都可以编写自己的客户端来连接到我的服务并运行其他功能而无需进行身份验证。无论客户端是否已通过身份验证,我都可以通过在服务中保存来解决此问题。
但是有没有更好的解决方案,只是在服务中具有“连接”功能?
希望有一些简单而有效的东西。

最佳答案

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

关于WCF使用数据库对客户端进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10261228/

相关文章:

asp.net - 将 FormsAuthentication cookie 传递给 WCF 服务

javascript - 将对象内的列表发送到 Wcf 服务

java - 使用双向身份验证连接到服务器时 Java 测试客户端中的 SSL Handshake_failure

android - Firebase 仅在某些设备上进行身份验证?

.net - WCF 能否与 native (C++) 应用程序一起使用或从 native (C++) 应用程序使用?

由 iis 7.5 或 consolehost 托管的带有 SSL 的 WCF

c# - 如何在 C# 中通过名称查找位置的纬度和经度?

c# - 如何在MVC应用中使用JWT进行认证授权?

session - 使用 ColdFusion 创建持久登录系统

node.js - 使用node.js和mongoose以及expressjs和passportjs进行身份验证