我有一个客户端-服务器程序,它使用套接字以有状态的方式传输信息。我的意思是,连接是持久的,并且使用嵌入软件本身的公钥和私钥进行身份验证。它运行良好且非常高效,但我建立的整体框架使添加任何新内容成为一个漫长的过程,因此我想转向 Web 服务。在某个时候,我将获得证书并使用 SSL,但现在我只是担心确保用户经过身份验证以执行他们想做的事情。
原始模式让用户在开始时输入他们的用户名和密码,服务器只记住他们在连接期间的身份。现在我正在转向无状态 Web 服务,我可能不得不在每次请求时都交出这些信息。我对网络服务相当陌生,在网上做了一些搜索,发现了两个关于如何做到这一点的建议。一种只是在每个函数调用中发送一个身份验证对象,另一种是将用户名和密码信息粘贴在 SOAP 标头中。我有点困惑哪种方法会更好,因为无论哪种方式,您仍然只是在服务器端进行字符串比较(好吧,在密码的情况下,哈希然后比较)。
此外,虽然它的客户端是一个 WPF 应用程序,但将来我想制作一个支持浏览器的版本。我对如何做到这一点的决定会影响未来的网络工作吗?想法!
编辑:我应该提到有几个级别的访问权限。较低级别只能访问某些功能,而最高级别可以访问所有功能。我认为这是我必须在函数本身中验证的东西,但如果有内置的方法可以更轻松地处理这个问题,我会全力以赴。