서비스에 액세스하기 위해 사용자 이름과 암호가있는 웹 서비스를 설정하려고합니다. 이 링크를 가이드로 사용하고 있습니다. http://www.codeproject.com/Articles/642997/Generate-username-authentication-based-on-basicHtt인증서없이 basicHttpBinding을 기반으로하는 사용자 인증
나는 아래의 오류를 피할 수있는 영역에 도달했습니다. 아래 설정을 사용하여이 오류 메시지가 나타납니다.
호스트에 구성된 인증 체계 ('익명')는 'BasicHttpBinding'('Basic') 바인딩에 구성된 인증 방식을 허용하지 않습니다. SecurityMode가 전송 또는 TransportCredentialOnly로 설정되었는지 확인하십시오. 또한이 작업은 IIS 관리 도구, ServiceHost.Authentication.AuthenticationSchemes 속성, 요소의 응용 프로그램 구성 파일, 바인딩의 ClientCredentialType 속성을 업데이트하거나 응용 프로그램 구성 파일을 수정하여이 응용 프로그램의 인증 구성표를 변경하여 해결할 수 있습니다 HttpTransportBindingElement의 AuthenticationScheme 속성
내 설정 파일은 WCF 서비스는 윈도우 폰 8 응용 프로그램과 함께 사용할 수
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="customBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="Project.Services.MyService, Project.Services"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="MyBasicHttpBinding">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="customBehavior" name="Project.Services.MyService">
<endpoint address=""
binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
contract="Project.Services.Interfaces.ITechnology">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/Service/myService.svc" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
<appSettings>
<add key="userName" value="user1"/>
<add key="password" value="password"/>
</appSettings>
</configuration>
입니다. 오류에 대한 여러 기사를 읽었으며 끝점 주소를 ""설정했지만 아무 것도 작동하지 않았습니다. 나는 내가 잘못된 트랙에 나를 넣을 수있는 너무 많은 변경을하고 있다고 생각하면서 위의 설정으로 돌아 가야했습니다.
서비스는 내 로컬 IIS (Win 8 64 비트 프로 + 모든 업데이트)에서 호스팅됩니다.
아무도 도와 줄 수 있습니까?
userName 인증으로 BasicHttpBinding을 사용할 때 WCF의 기본 규칙은 http 전송이 일반 텍스트이므로 사용자 이름/pwd를 http로 전달할 수 없다는 것입니다. 따라서 https로 만드는 전송 보안을 활성화해야합니다. – Rajesh
내가 귀하의 의견에 동의하지만 원래 Windows Phone 8은 https 사용자 이름 인증을 지원하지 않습니다. 따라서 사용자/암호로 basicHttpBinding을 사용해야합니다. 이것이 틀린 지 알고 싶습니다. – Computer