2013-06-20 4 views
1

Есть ли способ настроить клиент .NET так, чтобы он работал с IIS, размещенным SingalR, который использует проверку подлинности Windows?Dot Net Client и IIS размещали SignalR с Win auth

Если отключить проверку подлинности 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 triggerst непосредственно после старта, и когда первая подписка приходит я получаю

Метод Start должен быть вызван, прежде чем данные могут быть отправлены. Если я поставлю часы на DefaultCredentials, я вижу, что имя пользователя, домен и пароль - это все String.Empty. Его стандартная консольная программа, Enviroment.Username возвращает мое имя пользователя

ответ

2

Конечно, установите connection.Credentials = CredentialCache.DefaultCredentials. Подробнее об учетных данных здесь http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspx.

+0

Спасибо Дэвиду, да, я пробовал это без везения, но теперь, когда я знаю, что так вы должны это делать, я могу понять, почему он не работает. – Anders

+0

См. Мой править david – Anders

+0

Получил его на работу, я должен иметь FOBARed конфигурацию IIS, пытаясь заставить его работать. Если я удалю виртуальную папку и воссоздал ее с настройками по умолчанию, и только включив Win auth, она будет работать. Спасибо за вашу помощь. – Anders