Asp.net Cookie清理后信号授权成功
我使用auth Cookie开发ASP.NET应用程序,并默认使用SignalR 2.0.3与Websocket传输聊天。我使用“Authorize”属性来授权集线器Asp.net Cookie清理后信号授权成功,asp.net,cookies,websocket,signalr,Asp.net,Cookies,Websocket,Signalr,我使用auth Cookie开发ASP.NET应用程序,并默认使用SignalR 2.0.3与Websocket传输聊天。我使用“Authorize”属性来授权集线器 [Authorize] [HubName("c")] public class Chat : Hub { ... 我遇到了下一个问题。清除浏览器(Chrome或Firefox)中的所有cookie后,授权stil成功。它仅用于WebSocket传输。 我尝试使用so HubPipelineModule解决此问题: public
[Authorize]
[HubName("c")]
public class Chat : Hub
{
...
我遇到了下一个问题。清除浏览器(Chrome或Firefox)中的所有cookie后,授权stil成功。它仅用于WebSocket传输。
我尝试使用so HubPipelineModule解决此问题:
public class CheckingCookiesPipelineModule : HubPipelineModule
{
protected override bool OnBeforeIncoming(IHubIncomingInvokerContext context)
{
if (context.Hub.Context.Request.Cookies["auth_key"].Value == string.Empty)
{
return false;
}
return base.OnBeforeIncoming(context);
}
}
它没有帮助,因为cookies在Websocket请求中不是空的。
有谁能解释信号员Websocket如此奇怪的行为?它是bug还是特性?可能有解决方法吗?WebSocket是持久连接,它们总是连接的。Cookie在连接握手过程中发送,而不是在每条消息中发送 如果关闭连接,再次连接时cookie应为空