在SignalR中存储客户端变量的正确方法是什么?

时间:2014-07-31 01:23:22

标签: signalr

目前,我使用的是DictionaryContext.User.Identity.Name(为了简洁起见,代码缩写):

[Authorize]
public class ServiceHub : Hub
{
    static private Dictionary<string, HubUserProcess> UserProcesses = new Dictionary<string, HubUserProcess>();

    public override Task OnConnected()
    {
        UserProcesses[Context.User.Identity.Name] = new HubUserProcess();
        return base.OnConnected();
    }

    public override Task OnDisconnected()
    {
        // ... Remove from dictionary if key exists (not shown) ...
        return base.OnConnected();
    }

    // Then I use UserProcesses[Context.User.Identity.Name] in all functions
}

在我的HubUserProcess课程中,我有一堆使用Context.User.Identity.Name在构造函数中初始化的Web服务。同事说我的方法不安全,所以我最担心的是一个用户访问另一个用户的私人数据(这些变量可以保存非常敏感的信息)。存储客户端变量的正确/安全方法是什么?

0 个答案:

没有答案