Usuário com melhor resposta
especificar o usuário do AD??

Pergunta
-
Pessoal, é possível especificar o usuário do AD que vai enviar uma mensagem através da configuração WCF?
Segue o web.config:
Code Snippet<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="bind">
<security mode="Message">
<message clientCredentialType="UserName"/></security>
</binding>
</netMsmqBinding>
</bindings>
<client>
<endpoint address="net.msmq://paco17/applicationLog"
binding="netMsmqBinding"
contract="LogBlock.ILoggerProcessor" name="LoggerProcessor"
bindingConfiguration="bind" >
</endpoint>
</client>
</system.serviceModel>Desde já muito obrigado.
Respostas
-
Ola Saccolino,
A pessoa que invoca o serviço é quem enviará as credenciais para que ela possa ser autenticada no seu servidor.
Como você colocar o "UserName" como ClienteCredencialType, você pode informar isso através do behavior clientCredentials: http://msdn2.microsoft.com/en-us/library/ms731310(VS.85).aspx
Todas as Respostas
-
Ola Saccolino,
A pessoa que invoca o serviço é quem enviará as credenciais para que ela possa ser autenticada no seu servidor.
Como você colocar o "UserName" como ClienteCredencialType, você pode informar isso através do behavior clientCredentials: http://msdn2.microsoft.com/en-us/library/ms731310(VS.85).aspx -
Ola Israel,
Alterei o web.config:
Code Snippet<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="bind">
<security mode="Message">
<message clientCredentialType="UserName"/></security>
</binding>
</netMsmqBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="behavior">
<clientCredentials supportInteractive="True" >
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<client>
<endpoint address="net.msmq://paco17/applicationLog"
binding="netMsmqBinding"
contract="LogBlock.ILoggerProcessor" name="LoggerProcessor"
bindingConfiguration="bind" behaviorConfiguration="behavior" >
</endpoint>
</client>
</system.serviceModel>
e modifiquei meu código para informar o usuário:
Code Snippetusing (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
LogBlock.LoggerProcessorClient client = new LogBlock.LoggerProcessorClient("LoggerProcessor");
client.ClientCredentials.Windows.ClientCredential.Domain = "PG2000";
client.ClientCredentials.Windows.ClientCredential.UserName = "renatos";
client.ClientCredentials.Windows.ClientCredential.Password = "123456";
client.SubmitErro(er);
client.Close();
scope.Complete();
}porem agora recebo a seguinte exception:
System.InvalidOperationException was unhandled by user code
Message="The username is not provided. Specify username in ClientCredentials.É dessa forma que eu devo informar o usuario?
muito obrigado.