Я использую SignalR
по проекту Asp.net Web Api
.SignalR encrypt Параметры QueryString
Я подключаюсь к концентраторам от отдельных проектов Asp.net MVC
.
Все работает нормально до сих пор.
Однако, мне нужно осуществить проверку подлинности на SignalR Hubs
для того, чтобы сделать это, я просто нужен token
быть посылает в качестве параметра QueryString:
// Hub implementation on Asp.Net Web Api project
public class AppHub : Hub
{
public override async Task OnConnected()
{
string token = Context.QueryString["token"];
var validateResult = ValidateRequestService.ValidateToken(token);
Groups.Add(Context.ConnectionId, validateResult.UserName);
base.OnConnected();
}
}
// Javascript implementation on Asp.net MVC project
$.connection.hub.url = 'http://webApiProject.com/signalr';
$.connection.hub.qs = { 'token': '@(ViewBag.SessionToken)' };
Это работает.
Проблема в том, что я хранил конфиденциальную информацию (token
) на клиенте (в браузере). Если хакер проверяет исходный код страницы, он может легко увидеть ключ token
.
Есть ли способ зашифровать/расшифровать параметр строки запроса, чтобы он был зашифрован на стороне клиента?
Я могу легко зашифровать его на клиенте, но проблема в том, что он будет отправлен зашифрован на сервер Web Api
.
Работает ли в этом случае HttpModule
?
SignalR поддерживает встроенные модели в ASP.NET использует это значение – Anders
@ Аnders Я не использую 'FormsAuthentication'. «Токен» проверяется с использованием внешней службы. – Catalin
Используйте пользовательский поставщик членства и пусть ASP.NET маршалирует аутентификацию для вас: btw, вы не ограничены формами, вы также можете использовать Windows – Anders