Как настроить базовую аутентификацию без SSL в ASP.NET - PullRequest
2 голосов
/ 23 июня 2011

Folks,

У меня есть веб-сервис asmx, являющийся hotes в IIS 7 с включенной только базовой аутентификацией.

Я пытаюсь проверить базовую аутентификацию на моем локальном компьютере, прежде чем иметь дело сSSL.

При тестировании с использованием следующего кода ...

        [TestMethod]
    public void TestMethod1()
    {
        MyCompanyExternalService.CClaim claim = new MyCompanyExternalService.CClaim();
        claim.Airline = "AA";
        claim.OrigCty = "MCO";
        claim.PaxFN = "John";
        claim.PaxLN = "Smith";
        claim.FileRef = "DL123321";
        claim.OrigDate = Convert.ToDateTime("1/1/2001");
        claim.ClaimFor = MyCompanyExternalService.EReasonsForClaim.Pilferage;
        claim.AirlineClaimStatus = "Open";


        MyCompanyExternalService.wsMyCompanyImportSoapClient MyCompanyImportSoapClient 
            = new MyCompanyExternalService.wsMyCompanyImportSoapClient("wsMyCompanyImportSoap");
        MyCompanyImportSoapClient.ClientCredentials.UserName.UserName = "My-PC\\chron";
        MyCompanyImportSoapClient.ClientCredentials.UserName.Password = "********";
        Assert.IsTrue(MyCompanyImportSoapClient.SubmitClaim(claim));
    }

.. Я получаю следующую ошибку:

HTTP-запрос не авторизован с клиентомСхема аутентификации «Базовая».Заголовок аутентификации, полученный от сервера, был 'Basic realm = "localhost".

innerexception: удаленный сервер возвратил ошибку: (401) Unauthorized.

Вот мое приложение.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="wsMyCompanyImportSoap" 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" />
                    <security mode="TransportCredentialOnly">
                        <transport clientCredentialType="Basic" realm="" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost/MyCompany/MyCompanyWebServiceApp/wsMyCompanyImport.asmx"
                binding="basicHttpBinding" bindingConfiguration="wsMyCompanyImportSoap"
                contract="MyCompanyExternalService.wsMyCompanyImportSoap"
                name="wsMyCompanyImportSoap" />
        </client>
    </system.serviceModel>
</configuration>

Может кто-нибудь заметить мою проблему?

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Пожалуйста, обратитесь к следующей ссылке.Это может помочь вам.

http://ozkary.blogspot.in/2011/05/http-request-is-unauthorized-with.html

0 голосов
/ 24 июня 2011

Я использовал пару пользователей-администраторов для проверки базовой аутентификации веб-службы.Я не знаю почему, но они потерпели неудачу.Наконец, я попытался пройти аутентификацию с тестовым пользователем, у которого не было никаких привилегий, за исключением ACL в каталоге веб-службы, и это сработало.

...