2012-03-15 4 views
14

Na SignalR .NET, możemy nawiązać połączenia jak poniżej między klientem a serwerem:SignalR bezpieczne połączenie pomiędzy .NET klientem a serwerem

var connection = new HubConnection("http://mysite/"); 

Następnie możemy subskrybować zdarzenia i rozpocząć połączenie, jak poniżej:

connection.Start().Wait(); 

Co jeśli chciałbym ustanowić bezpieczne połączenie między klientem a serwerem. Jak możemy to osiągnąć dzięki obecnym funkcjom?

Zauważyłem, że istnieje typ własności System.Net.ICredentials na klasie HubConnection. Czy to jest droga do tego? Jeśli tak, to w jaki sposób powinniśmy obsługiwać uwierzytelnianie po stronie serwera dla naszych serwerów?

Odpowiedz

25

Oto jak ja kopalnia skonfigurować:

var hubConnection = new HubConnection("http://siteurl"); 
    hubConnection.Credentials = CredentialCache.DefaultNetworkCredentials; 
    hubProxy = hubConnection.CreateProxy("My.Hub.Namespace"); 

    hubConnection.Start().Wait(); 

Można oczywiście zdać w różnych poświadczeń używam DefaultNetworkCredentials

Poświadczenia zwracane przez DefaultNetworkCredentials reprezentuje poświadczenia uwierzytelniania dla prądu kontekst zabezpieczeń, w którym działa aplikacja. W przypadku aplikacji po stronie klienta są to zwykle poświadczenia systemu Windows (nazwa użytkownika, hasło i domena) użytkownika, na którym uruchomiona jest aplikacja. W przypadku aplikacji ASP.NET domyślnymi poświadczeniami sieci są poświadczenia użytkownika zalogowanego użytkownika lub podszywany przez użytkownika.

+0

OK, to jest miłe. W jaki sposób uwierzytelniasz użytkownika na serwerze tymi danymi uwierzytelniającymi? W jaki sposób SignalR zarządza tym? – tugberk

+1

SignalR w ogóle nie bierze udziału w uwierzytelnianiu. Po prostu przechodzi przez poświadczenia z hosta. W przypadku próbki powyżej, musisz mieć SignalR być chronione za pomocą uwierzytelniania systemu Windows, aby domyślne dane sieciowe nic nie robiły. Następnie możesz autoryzować użytkownika w oparciu o własną logikę (czy użytkownik "Bob" może wywołać metodę koncentratora "Foo"?) –

+0

@DamianEdwards, więc możemy powiedzieć, że tworzymy aplikację na czacie na pulpicie, która ma uwierzytelnianie użytkownika (tak jak w Windowsie Live Messagner) z SignalR nie jest dobrym pomysłem (przynajmniej na razie)? Macie JabbR jako IRC, który ma formularze-auth. Czy masz jakąś próbkę auth na pulpicie, którą mogę obejrzeć i zrozumieć? – tugberk