Отправить SOAP с заголовком UserNameToken - PullRequest
0 голосов
/ 07 мая 2018

Как ввести имя пользователя и пароль в заголовок SOAP для отправки через ASP.NET?

Это должен быть заголовок:

    <SOAP-ENV:Header>
<Security 
xmlns='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
    <UsernameToken>
        <Username>USUARIO</Username>
        <Password 
    Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText'>SENHA</Password>
    </UsernameToken>
</Security>  

Я пробовал таким образом, плохо не работает:

            string username = "USUARIO";
    string password = "SENHA";

    UsernameToken userToken;
    userToken = new UsernameToken(username, password, PasswordOption.SendHashed);

    PolicyEnforcementSecurityTokenCache.GlobalCache.Add(userToken);

    ServiceReference1.UpdateAccountRequest UpdateAccountRequest = new ServiceReference1.UpdateAccountRequest();
    ServiceReference1.UpdateAccountResponse UpdateAccountResponse = new ServiceReference1.UpdateAccountResponse();
    ServiceReference1.AccountResponse AccountResponse = new ServiceReference1.AccountResponse();

    ServiceReference1.SLASCRMAccountService_v1Client SLASCRMAccountService_v1Client = new ServiceReference1.SLASCRMAccountService_v1Client();
    ServiceReference1.SCRMAccount[] SCRMAccount = new ServiceReference1.SCRMAccount[] {
        new ServiceReference1.SCRMAccount {accountnumber = "99999999999", name = "FABIANO SOARES", telephone1 = "9999999", address1_line1 = "AV BRASILIA, 1024", address1_country = "BRASIL", dealer = "219", persontype = "1", address1_city = "ROLANDIA", address2_county = "PARANA", global_countrycode = "BR", global_accounttype = "1", global_sourcestatus = "Ativo", originsystem = "Datasul", relationtype = "3", cws = "Não" }
    };

    //SLASCRMAccountService_v1Client.ClientCredentials.UserName.UserName = username;
    //SLASCRMAccountService_v1Client.ClientCredentials.UserName.Password = password;

    AccountResponse =  SLASCRMAccountService_v1Client.UpdateAccount(SCRMAccount);

    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "err_msg", "alert('Sucesso.!');", true);

сообщение об ошибке: System.ServiceModel.Security.MessageSecurityException: «HTTP-запрос не авторизован в схеме аутентификации клиента« Anonymous ». Заголовок аутентификации, полученный от сервера, был ''. '

...