WCFTestClient Запрос HTTP лишен полномочий со схемой 'Anonymous' аутентификации клиента

Если это - конструктор, особенно если существует несколько перегруженных вариантов, необходимо посмотреть на шаблон Разработчика:

Foo foo = new Foo()
          .configBar(anything)
          .configBaz(something, somethingElse)
          // and so on

, Если это - нормальный метод, необходимо думать об отношениях между значениями, передаваемыми, и возможно создать Объект Передачи.

63
задан shytikov 15 September 2015 в 15:20
поделиться

5 ответов

У меня похожая проблема, пробовали ли вы:

proxy.ClientCredentials.Windows.AllowedImpersonationLevel =   
          System.Security.Principal.TokenImpersonationLevel.Impersonation;
9
ответ дан 24 November 2019 в 16:21
поделиться

Только что получили эту проблему на машине развития (производственные работы просто отлично). Я изменяю свой конфиг в IIS, чтобы разрешить анонимный доступ и поставить мое имя и пароль в качестве учетных данных.

Не лучший способ, которым я уверен, но он работает для целей тестирования.

0
ответ дан 24 November 2019 в 16:21
поделиться

Я вижу, что на этот вопрос еще не ответили, это точная цитата отсюда:

WSHttpBinding попытается выполнить внутреннее согласование на уровне SSP. Для того, чтобы это было успешным, необходимо разрешить анонимность в IIS для VDir. WCF будет тогда по умолчанию перфром SPNEGO для учетных данных окна. Разрешение анонимности на уровне IIS не позволяет никому войти, это откладывает к стеку WCF.

Я нашел это через: http://fczaja.blogspot.com/2009/10/http-request-is-unauthorized-with.html

После гугления: http://www.google.tt/#hl=en&source=hp&q=+The+HTTP+request+is+unauthorized+with+client+authentication+scheme+%27Anonymous

6
ответ дан 24 November 2019 в 16:21
поделиться

У меня не было контроля над конфигурацией безопасности для службы, в которую я звонил, но возникла та же ошибка. Я смог исправить своего клиента следующим образом.

  1. В конфигурации настройте режим безопасности:

      
      {{1 }}  
      
     
  2. В коде установите прокси-класс, чтобы разрешить олицетворение (я добавил ссылку на сервис под названием customer):

     Customer_PortClient proxy = new Customer_PortClient (); 
    proxy.ClientCredentials.Windows.AllowedImpersonationLevel = 
    System.Security.Principal.TokenImpersonationLevel.Impersonation; 
     
80
ответ дан 24 November 2019 в 16:21
поделиться

Вот что мне нужно было сделать, чтобы это заработало. Это означает:

  1. Custom UserNamePasswordValidator (нет необходимости в учетной записи Windows, SQLServer или ActiveDirectory - ваш UserNamePasswordValidator может иметь жестко закодированное имя пользователя и пароль или читать его из текстового файла, MySQL или чего-то еще).
  2. https
  3. IIS7
  4. .net 4.0

Мой сайт управляется через DotNetPanel. Он имеет 3 варианта безопасности для виртуальных каталогов:

  1. Разрешить анонимный доступ
  2. Включить базовую проверку подлинности
  3. Включить встроенную проверку подлинности Windows

Требуется только «Разрешить анонимный доступ» (хотя этого самого по себе было недостаточно ).

Настройка

proxy.ClientCredentials.Windows.AllowedImpersonationLevel =  System.Security.Principal.TokenImpersonationLevel.Impersonation;

В моем случае ничего не изменилось.

Однако использование этой привязки сработало:

      <security mode="TransportWithMessageCredential">
        <transport clientCredentialType="Windows" />
        <message clientCredentialType="UserName" />
      </security>        
3
ответ дан 24 November 2019 в 16:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: