Я использую аутентификацию JWT в своем приложении ASP.NET Core 2.0 с OpenIddict.
Я следую идее в этом потоке и вызываю метод AuthorizeWithJWT
после рукопожатия SignalR. Но теперь я не знаю, что мне установить в AuthorizeWithJWT
методе, чтобы я мог использовать, например, [Authorize(Roles="Admin")]
.
Я попытался настроить контекстного пользователя, но он доступен только для чтения:
public class BaseHub : Hub
{
public async Task AuthorizeWithJWT(string AccessToken)
{
//get user claims from AccesToken
this.Context.User = user; //error User is read only
}
}
И используя атрибут авторизации:
public class VarDesignImportHub : BaseHub
{
[Authorize(Roles = "Admin")]
public async Task Import(string ConnectionString)
{
}
}