Dot Net Client和IIS使用Win auth托管SignalR

时间:2013-06-20 23:10:43

标签: signalr windows-authentication

有没有办法配置.NET客户端,以便它可以与使用Windows身份验证的IIS托管的SingalR一起使用?

如果我禁用Windows身份验证,它可以工作,但这不是一个选项

设置connection.Credentials = CredentialCache.DefaultCredentials无效。

代码

public EventProxy(IEventAggregator eventAggregator, string hubUrl)
{
    typeFinder = new TypeFinder<TProxyEvent>();
    subscriptionQueue = new List<EventSubscriptionQueueItem>();
    this.eventAggregator = eventAggregator;

    var connection = new HubConnection(hubUrl);
    connection.Credentials = CredentialCache.DefaultCredentials;
    proxy = connection.CreateHubProxy("EventAggregatorProxyHub");

    connection.Start().ContinueWith(o =>
        {
            SendQueuedSubscriptions();
            proxy.On<object>("onEvent", OnEvent);
        });
}

ContinueWith在Start之后直接触发,当第一个订阅进入时我得到了

  

必须先调用Start方法,然后才能发送数据。   如果我在DefaultCredentials上放置一个监视器,我可以看到用户名,域和密码都是String.Empty。它是一个标准的Console程序,Enviroment.Username返回我的用户名

1 个答案:

答案 0 :(得分:2)

当然,设置connection.Credentials = CredentialCache.DefaultCredentials。有关凭据的更多详细信息,请http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspx