我有一个WCF服务,应该为几个客户提供服务。
WCF将拥有一个与数据库通信的数据访问层。
这是我的设计理念的一部分:My Design
My Design http://s15.postimage.org/apxri7mw9/Design_Idea.png
正如您所看到的 - 每个客户端将连接到第一个WCF服务以获取信息(获取产品,更新产品),并以pub \ sub方式连接到第二个WCF服务,因此它将能够接收通知关于它想要的不同事物。
我在数据库中有一个表,用于系统中所有用户的“用户”。 (有管理员,普通用户和技术人员)。
我的问题是 - 如何从客户端到数据库进行'日志记录'?
我目前的想法 - 在名为'Connect(用户名,密码)'的服务中有一项功能,当客户端连接时 - 它将传递用户名和密码以在数据库中进行身份验证,并且只有经过身份验证 - 客户端才会开始发送命令。
问题是 - 任何人都可以编写自己的客户端连接到我的服务并运行其他功能而无需进行身份验证。无论客户端是否经过身份验证,我都可以通过保存服务来解决这个问题。
但是,是否有更好的解决方案只是在服务中使用“连接”功能?
希望有一些简单而有效的东西。
答案 0 :(得分:2)
您应该创建一个自定义用户名和密码验证程序,该验证程序派生自UserNamePasswordValidator
抽象类并实现Validate()
方法。然后,您可以根据需要验证提供的用户名和密码。要详细了解如何进行此设置,请阅读this文章。