SignalR hub Context.User.IsInRole (xyz) не вызывает CumstomRoleProvider - PullRequest
1 голос
/ 31 октября 2019

В рамках метода-концентратора 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;
    }

CustomRoleProvider

public class CustomRoleProvider:RoleProvider
{
     public override string[] GetRolesForUser(string username)
     {
         return new[]{"Test_Role"};
     }
}

Почему это не работает в сигнале R? user.IsInRole не вызывает GetRolesForUser и всегда возвращает False .

...