我正在尝试使用SignalR为我的asp网站构建聊天系统。现在我使用基于cookie的身份验证Owin中间件在每个请求上对用户进行身份验证。
当客户端连接时,授权适用于集线器。但是,如果用户退出网站,我认为这会使会话ID cookie无效,则用户仍然可以使用该中心进行聊天。
每次调用HubDispatcher的OnReceived时,我都需要再次对用户进行身份验证,或者只是每次集线器接收到来自客户端的呼叫时都需要进行身份验证。
知道SignalR使用完全绕过Owin管道的Owin的websocket连接,我想知道这是否可能,或者我是否应该尝试其他方法,例如在注销方法中添加一些逻辑以通知集线器a用户应该被拒绝。
答案 0 :(得分:0)
生成一个新的cookie或会话ID,您将在信号器客户端和集线器之间交换,因此当用户不再登录时,您更改会话ID或创建新cookie,如果不匹配,您将退出用户