HTML5 Websocket HTTP身份验证失败;没有有效的凭据可用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML5 Websocket HTTP身份验证失败;没有有效的凭据可用相关的知识,希望对你有一定的参考价值。

我已经在我的MVC5应用程序中实现了html5 Websocket。我已经使用Web API实现了此Web套接字。该代码在我的本地环境中运行良好。但这给了我测试环境以下的错误。

“与的WebSocket连接失败:HTTP身份验证失败;没有有效的凭据。”

我的服务器配置是带有IIS8的Windows Server 2012

请帮帮我。

答案

[我们有一些客户仅在Windows 2012的服务器上有此问题。这似乎与Websocket的存在有关。在这些服务器上,启用跨域修复已为我们修复。

  // Turn cross domain on 
    var config = new HubConfiguration  EnableCrossDomain = true ;

    // This will map out to http://localhost:50001/signalr by default
    app.MapHubs(config);
另一答案

我的原因是过滤器在服务器中拦截

@Override
public void doFilter(ServletRequest request, ServletResponse response,
                     FilterChain chain) throws IOException, ServletException 
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse rep = (HttpServletResponse) response;
    handleRequest(req);

    // swagger 不过滤
    String ur = req.getRequestURI();
    if (req.getRequestURI().contains("swagger")
            || req.getRequestURI().contains("swagger")
            || req.getRequestURI().contains("v2/api-docs")
            || req.getRequestURI().contains("websocket")
            || req.getRequestURI().startsWith("/images/favicon-")
            || req.getRequestURI().startsWith("/configuration/")
            || req.getRequestURI().startsWith("/v2/editapi/") ) 

        chain.doFilter(request, response);
    

以上是关于HTML5 Websocket HTTP身份验证失败;没有有效的凭据可用的主要内容,如果未能解决你的问题,请参考以下文章

支持简单 HTTP 和 Websocket 的服务器上的用户身份验证

使用 WebSocket4Net 的 Http 身份验证

是否可以对 websocket 升级请求使用不记名身份验证?

使用 Spring Security 在 Spring 中进行 WebSocket 身份验证

Ktor websockets 身份验证

go websocket 问题(Hijacker)