SignalR 身份验证 - 处理未授权

SignlaR authentication - handle unauthorized

所以看完这篇文章后, http://www.asp.net/signalr/overview/security/hub-authorization

我找不到任何关于如何以某种方式通知用户他未被授权的信息。

在 System.Web.Mvc.AuthorizeAttribute 你可以有

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
   ...
}

您可以在其中处理请求并将用户重定向到页面。

据我了解,在 SignlaR 的情况下,这是一个 websocket 请求,您无法重定向。

但是有没有办法处理来自 JavaScript 的 401 未授权响应,至少显示一条消息?

您可以在JavaScript中处理SignalR断开连接的原因。参见 Understanding and Handling Connection Lifetime Events in SignalR

$.connection.hub.disconnected(function () {
    if ($.connection.hub.lastError) 
        { alert("Disconnected. Reason: " +  $.connection.hub.lastError.message); }
});