假设我有 2 个集线器。
一种用于管理员操作,一种用于用户操作:
[Authorize(Roles = "Admin")]
public class MyHubAdmin : Hub
{..}
&
[Authorize(Roles = "Users")]
public class MyHubUsers : Hub
{..}
目前我的客户只支持 admin :
var _myHub = $.connection.myHubAdmin;
而且我知道我现在,我还有一个应该被对待的:
var _myHub = $.connection.myHubUsers ;
ps(我知道他们共享相同的连接)
但是客户就是客户
他在 2 分钟前登录了,所以我 知道 他是谁(管理员与用户)
那么我的 JS 客户端应该是什么样子:
应该是这样的吗?
var _myHub=null;
if (check if user) //or admin...
{
_myHub = $.connection.myHubUsers;
}
else
{
_myHub = $.connection.myHubAdmin;
}
Question
关于"check if user"
功能:
看来我可以通过两种方式做到这一点:
- 当用户登录时,在 cookie 中保存一个值,说明他是谁(管理员或用户)并在 JS 中读取它
- 当页面呈现时(登录后)将值放入隐藏输入并在 JS 中读取。
这是正确的做法吗?
(简而言之:如何根据用户身份实例化集线器 - 在客户端)