我目前正在空闲时间开发一个基于服务器客户端的小游戏,使用C#和WCF与net.TCP。 为了让你了解我的情况,这是我到目前为止所做的事情:
Connect
和Disconnect
等自动启动/终止会话的方法。然后,服务器使用会话ID和回调对象来标识客户端并记住它以进行回调。ObjectCreated
,PropertyChanged
等方法,当相应的服务器事件发生时,服务器会调用这些方法。Connect
的客户列表来识别客户端,并且技术上可以注意到非法调用,但我不知道这是否是正确的方法。接下来要考虑的是使用用户名和密码登录。首先,我尝试将Connect
方法重构为Connect(string UserName, string Password)
,但我认为这不是一个好主意,因为密码是未加密的。
所以我用WCF搜索了很多关于用户名/密码身份验证的内容,考虑使用自定义UserNamePasswordValidator
实现来检查凭据是否与服务器上的帐户匹配。但我读到你必须使用证书和每个消息身份验证,这对我来说听起来不好,因为服务器和客户端之间会有很多网络交互。
现在我的问题:是否有任何快速安全的方式使用用户名/密码(可能是每个会话)登录,就像在其他已知的基于客户端服务器的游戏中一样?
详细的答案对我的小游戏来说是一个很好的一步,对我的战略的建设性改变表示赞赏,非常感谢。