我们的设置是这样的:我们使用coldfusion 10服务器,文件位于本地Intranet上。用户使用域登录通过https访问任何文件。我对使用html5 websockets感兴趣,但第一次尝试给了我一个错误,因为没有提供凭据。有没有解决的办法?如果没有,这种情况是否有推荐的技术?
用户确实在客户端登录。如果可能的话,我在这里真正想做的是在连接到服务器时传递这些凭据。
答案 0 :(得分:3)
您应该能够在提升到Web套接字之前向Web套接字服务器提供authentication
标头,并将其发送回标题中的高程(第一帧),然后在浏览器连接时应该拥有它需要的身份验证。
如果您在页面中使用自定义身份验证E.G而不是authentication
标题,您也可以通过将任何自定义标头传递到您的服务器来执行此操作。
或者强制要求您的Web客户端发送的第一件事是身份验证详细信息,如果他们不关闭套接字,则可能类似于{username_hash}.{password_hash}
。
答案 1 :(得分:1)
不要这样做。 您现在负责自己发送和加密身份验证凭据,绕过已经运行并经过测试的内容。
任何人都可以窥探未加密的websocket端口。使用HTTP作为内联网,使用稳定的解决方案,不要重新发明这个轮子,因为它会让你感到沮丧。
在几年内,一些同事将不得不维护这一点,并且必须弄清楚自制程序版本的工作方式与纯粹的浏览器身份验证之类的东西相比。
我的建议:将此内容留给浏览器和经过充分测试的coldfusion库。