signalr - SignalR 集线器 Context.User.IsInRole(xyz) 不调用 CumstomRoleProvider
问题描述
在 signalR 集线器方法中,我试图检查经过身份验证的用户是否属于特定角色。在平面 MVC 中,我可以调用user.IsInRole
并调用类覆盖RoleProvider
的GetRolesForUser
方法。
CustomRoleProvider 在 web.config 中设置:
<roleManager cacheRolesInCookie="false" defaultProvider="CustomRoleProvider" enabled="true">
<providers>
<clear />
<add name="CustomRoleProvider" type="CustomRoleProvider" />
</providers>
</roleManager>
当user.IsInRole
被调用时CustomRoleProvider.GetRolesForUser(string username)
被调用。
集线器代码
public IEnumerable<Items> GetList()
{
IList<Items> result;
var user = Context.User;
if (user.IsInRole("Test_Role"))
result = itemProvider.GetItems();
else
result = new[] { };
return result;
}
自定义角色提供者
public class CustomRoleProvider:RoleProvider
{
public override string[] GetRolesForUser(string username)
{
return new[]{"Test_Role"};
}
}
为什么这在信号 R 中不起作用? user.IsInRole
不调用GetRolesForUser
并始终返回False。
解决方案
推荐阅读
- css - 如何在没有类或 ID 或共享全局类/ID 的情况下隐藏 li 和标签
- spring - 使用 Spring Reactive WebClient 对同一服务 API 进行多次调用的正确方法?
- angular - 无法使用模板引用变量触发 mat-checkbox 更改事件
- accessibility - ngFor 为屏幕阅读器按正确顺序显示每个项目的模式窗口
- json - 如何为 json 模式编写测试?
- python - Tensorflow 到 PyTorch - model.predict 等效
- sql - 使用 SubQuery 在 SQL 中插入多行
- css - 看到这些奇怪的 CSS 结果的特殊规则是什么:first-child
- css - 具有多个参数的 react-Native css 样式
- php - woocommerce 购物车为空时隐藏元素,出现在 AJAX 上添加到购物车