Asp.net .NET客户端和服务器之间的信号安全连接

Asp.net .NET客户端和服务器之间的信号安全连接,asp.net,signalr,Asp.net,Signalr,在signar.NET上,我们在客户端和服务器之间建立了如下连接: var connection = new HubConnection("http://mysite/"); 接下来,我们订阅事件并启动连接,如下所示: connection.Start().Wait(); 如果我想在客户端和服务器之间建立一个安全连接,该怎么办。我们如何利用当前的功能实现这一点 我注意到HubConnection类上有一个属性类型为System.Net.ICredentials。这是这条路吗?如果是这样,我们

在signar.NET上,我们在客户端和服务器之间建立了如下连接:

var connection = new HubConnection("http://mysite/");
接下来,我们订阅事件并启动连接,如下所示:

connection.Start().Wait();
如果我想在客户端和服务器之间建立一个安全连接,该怎么办。我们如何利用当前的功能实现这一点


我注意到
HubConnection
类上有一个属性类型为
System.Net.ICredentials
。这是这条路吗?如果是这样,我们应该如何处理集线器服务器端的身份验证?

以下是我的设置:

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

  hubConnection.Start().Wait();
你当然可以通过不同的证书,我用

DefaultNetworkCredentials返回的凭据表示运行应用程序的当前安全上下文的身份验证凭据。对于客户端应用程序,这些通常是运行应用程序的用户的Windows凭据(用户名、密码和域)。对于ASP.NET应用程序,默认网络凭据是登录用户或被模拟用户的用户凭据


好的,这很好。如何使用这些凭据对服务器上的用户进行身份验证?信号员是如何管理的?信号员根本不参与身份验证。它只是从底层主机传递凭据。在上面的示例中,您需要使用Windows身份验证为默认网络凭据保护您的信号器,以便执行任何操作。然后,您可以根据自己的逻辑对用户进行授权(是否允许用户“Bob”调用hub方法“Foo”?)@DamianEdwards那么,我们是否可以说,使用SignalR创建一个基于用户的身份验证(就像Windows Live Messagner)的桌面聊天应用程序不是一个好主意(至少目前是这样)?你们有JabbR作为IRC,它有表单auth。你有没有任何桌面授权的例子,我可以看看,并掌握的想法?@tugberk我不认为这是达米安的意思。他的意思是认证发生在信号器之外。我在silverlight应用程序中使用windows auth,效果非常好。您只需要在IIS服务器上打开Windows身份验证(并关闭匿名),上面的代码应该可以与401身份验证挑战一起使用。@Andy谢谢Andy!我仍然无法想象如何将凭据从我的桌面应用程序传递到IIS。您是否建议我检查桌面应用程序上的权限,如果这些权限有效,那么我应该允许SignalR运行?