none
especificar o usuário do AD?? RRS feed

  • 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.

     

    quarta-feira, 20 de fevereiro de 2008 19:45

Respostas

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

    quinta-feira, 21 de fevereiro de 2008 12:09
    Moderador
  •  

    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 Snippet
      using (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.

     

    quinta-feira, 21 de fevereiro de 2008 17:23