Веб-приложение .net4.0, использующее веб-сервис java, требует аутентификации на основе имени пользователя - PullRequest
2 голосов
/ 03 февраля 2012

Я новичок в использовании .net 4.0 VS2010. Мне нужно использовать java webservice и отправить пользовательскую аутентификацию на основе имени пользователя для доступа к сервису, это я легко сделал с помощью WSE2.0 в VS2005, что заменит это в net 4.0?

Мой клиент - веб-приложение .net 4.0 Asp.net (веб-сайт), а сервис - java webservice.

Спасибо

Хорошо, после проверки с Google дядя, следующий сайт был отправной точкой gud

WCF Security

основываясь на том, что я сделал несколько изменений в своем коде, но все же не испытал особой радости. вот код

     protected void TPLoginButton_Click(object sender, EventArgs e)
    {
        thirdpartyloginClient tplogin = null;
        ThirdPartyLogInResponse proxyresponse = null; 
        ThirdPartyLogInRequest proxyrequest = null;            

        try
        {
            if (tplogin == null)
            {
                tplogin = new thirdpartyloginClient();
            }


            if (proxyrequest == null)
            {
                proxyrequest = new ThirdPartyLogInRequest();
            }

            tplogin.ChannelFactory.Credentials.UserName.UserName = "abcd";
            tplogin.ChannelFactory.Credentials.UserName.Password = "sWwqHyCKMgjttlJEsQIvxzuBPTIBeVquZRPZqZdbDYDaOiHVxKuwYuYmQDVtqqBrBAlLiuOwWwQwOfTqSzOpyUaEbliOPaBHJTnBvulRSuZrcTHddKXwAIIxYDcuUmBJ";

            proxyrequest.username = "gauls";           
            proxyresponse = tplogin.ThirdPartyLogIn(proxyrequest);


        }
        catch 
        {
            if (proxyresponse != null)
            {
                                     ResultBoxResponse.Text = proxyresponse.result.resultMessage.ToString();
            }
            else
            {

                ResultBoxResponse.Text = "Empty response!!";
            }                        


        }
        finally
        {

            if (proxyresponse != null)
            {
                                   ResultBoxResponse.Text = proxyresponse.result.resultMessage.ToString();
            }
            else 
            {

                ResultBoxResponse.Text = "Empty response!!";
            }



        }    






    }

мой web.config выглядит ниже

<system.serviceModel>    
    <bindings>
        <basicHttpBinding>
            <binding name="thirdpartyloginSoap11" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
      <!-- UsernameToken over Transport Security -->
      <security mode="TransportWithMessageCredential">
                    <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
                    <message clientCredentialType="UserName" algorithmSuite="Default"/>
                </security>
            </binding>
        </basicHttpBinding>      
    </bindings>   
<client>      
  <endpoint address="http://11.2.2.16:6060/trydemo/ws/thirdpartylogin" binding="basicHttpBinding" bindingConfiguration="thirdpartyloginSoap11" contract="ThirdPartyLoginService.thirdpartylogin" name="thirdpartyloginSoap11"/>      
    </client>
</system.serviceModel>

Вопрос

как добавить метку времени и пароль в качестве дайджеста

ошибка, которую я получаю сейчас, Предоставленная схема URI 'http' недействительна; ожидаемый «https». Имя параметра: через

я пытался использовать clearusernamebinding

я получаю следующую ошибку

Необеспеченная или неправильно защищенная ошибка получена от другой стороны. См. Внутреннее исключение FaultException для получения кода ошибки и подробностей.

мой файл web.config выглядит так

<
system.serviceModel> 
<bindings> 
<clearUsernameBinding>
<binding name="myClearUsernameBinding" messageVersion="Soap11" />
</clearUsernameBinding>
</bindings>
<
client> 
<
endpoint address=http://10.2.2.16:7070/demo/ws/thirdpartylogin 
binding="clearUsernameBinding" bindingConfiguration="myClearUsernameBinding" 
contract="ThirdPartyLoginService.thirdpartylogin" 
name="ClearUsernameBinding_thirdpartylogin" /> 
</
client> 
<
extensions> 
<
bindingExtensions> 
<
add name="clearUsernameBinding" type="WebServices20.BindingExtenions.ClearUsernameCollectionElement, ClearUsernameBinding" /> 
</
bindingExtensions> 
</
extensions> 
</
system.serviceModel> 

«Требование получателя для перевариваемого пароля не выполнено» сильный текст , то есть фактическая ошибка

Как мне отправить пароль в шапке как PasswordDigest?

1 Ответ

1 голос
/ 07 февраля 2012

Вы должны использовать ClearUsernameBinding

...