目前,我使用的是Dictionary
和Context.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服务。同事说我的方法不安全,所以我最担心的是一个用户访问另一个用户的私人数据(这些变量可以保存非常敏感的信息)。存储客户端变量的正确/安全方法是什么?