Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом примере показано, как настроить WSHttpBinding привязку для использования безопасности на уровне сообщений с проверкой подлинности Windows. Этот пример основан на Кратком руководстве. В этом примере служба размещается в службах IIS, а клиент — консольное приложение (.exe).
Замечание
Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.
Безопасность по умолчанию для <wsHttpBinding> — это безопасность сообщений с помощью проверки подлинности Windows. Файлы конфигурации в этом примере явно задают значение атрибута mode для <безопасности>Message и значение атрибута clientCredentialType для Windows. Эти значения являются значениями по умолчанию для этой привязки, но они были явно настроены, как показано в следующем примере конфигурации для демонстрации их использования.
<bindings>
<wsHttpBinding>
<binding>
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
Конфигурация конечной точки клиента состоит из абсолютного адреса конечной точки службы, привязки и контракта. Привязка клиента настроена соответствующими securityMode и authenticationMode.
<system.serviceModel>
<client>
<endpoint address=
"http://localhost/servicemodelsamples/service.svc"
binding="wsHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>
<bindings>
<wsHttpBinding>
<!-- The default security for the WSHttpBinding is -->
<!-- Message security using Windows authentication. -->
<!-- This configuration explicitly defines the security mode -->
<!-- as Message and the clientCredentialType as Windows -->
<!-- for demonstration purposes. -->
<binding name="Binding1">
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
Исходный код сервиса был изменен, чтобы продемонстрировать, как ServiceSecurityContext можно использовать для доступа к идентификации вызывающего.
public string GetCallerIdentity()
{
// The Windows identity of the caller can be accessed on the ServiceSecurityContext.WindowsIdentity.
return OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;
}
При запуске примера запросы и ответы операции отображаются в окне консоли клиента. Первый вызываемый метод — GetCallerIdentity, который возвращает клиенту имя вызывающего абонента. Нажмите клавишу ВВОД в окне консоли, чтобы завершить работу клиента.
Настройка, сборка и запуск примера
Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".