Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este exemplo demonstra como configurar uma WSHttpBinding associação para usar a segurança em nível de mensagem com a autenticação do Windows. Este exemplo é baseado no Começando. Neste exemplo, o serviço é hospedado no IIS (Serviços de Informações da Internet) e o cliente é um aplicativo de console (.exe).
Observação
O procedimento de instalação e as instruções de build para este exemplo estão localizados no final deste tópico.
A segurança padrão para o <wsHttpBinding> é a segurança de mensagem usando a autenticação do Windows. Os arquivos de configuração neste exemplo definem explicitamente o atributo mode da <segurança> para Message e o atributo clientCredentialType como Windows. Esses valores são os valores padrão dessa associação, mas foram configurados explicitamente, conforme mostrado na configuração de exemplo a seguir para demonstrar seu uso.
<bindings>
<wsHttpBinding>
<binding>
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
A configuração do ponto de extremidade do cliente consiste em um endereço absoluto para o ponto de extremidade de serviço, a associação e o contrato. A associação de cliente é configurada com o securityMode e authenticationMode apropriados.
<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>
O código-fonte do serviço foi modificado para demonstrar como ele ServiceSecurityContext pode ser usado para acessar a identidade do chamador.
public string GetCallerIdentity()
{
// The Windows identity of the caller can be accessed on the ServiceSecurityContext.WindowsIdentity.
return OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;
}
Quando você executa o exemplo, as solicitações e respostas da operação são exibidas na janela do console do cliente. O primeiro método chamado – GetCallerIdentity – retorna o nome da identidade do chamador de volta para o cliente. Pressione ENTER na janela do console para desligar o cliente.
Para configurar, compilar e executar o exemplo
Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.
Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.
Para executar o exemplo em uma configuração de computador único ou cruzado, siga as instruções em Executar os exemplos do Windows Communication Foundation.