我有一个 WCF REST 文件服务器,它通过在每个请求中接受两个附加参数(用户名和密码)来验证用户。例如,System.IO.Stream Download(字符串用户名,字符串密码,int fileid)
我想对所有方法使用 GET,但我不能这样做,因为我不希望用户名和密码在地址栏中可见。相反,我使用 POST,这并不完全是防弹的,但在这种情况下仍然是比 GET 更好的选择。
除了基本 HTTP 身份验证之外,还有其他更好的用户验证方法吗?最好是能让我使用 GET 而不必在 URL 中包含用户名和密码的东西。
最佳答案
尝试通过将 Http 方法从 GET 更改为 POST 来隐藏用户名和密码,基本上没有增加安全性。即使是非常不懂技术的人也可以使用几乎任何程序来查看正在发送到服务器的数据。
现在,除了明显的用户名密码问题之外,您还可以使用 HTTP header 而不是 QueryString 参数将值传递回 WCF 服务 (RESTful)。这将允许您使用 GET 方法并仍然传递用户名和密码,而 URL 中不存在这些特定值,但同样,这实际上并没有增加安全性。
关于c# - WCF REST 的身份验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381842/