2012-04-04 4 views
1

기존 asp.net 인트라넷 응용 프로그램에 웹 서비스를 추가했습니다. 그 목적은 동일한 도메인의 다른 인트라넷 응용 프로그램에 기능을 제공하는 것입니다.웹 서비스 - Windows 인증

인트라넷 응용 프로그램은 Windows 인증을 사용합니다. Windows 인증을 사용하도록 웹 서비스를 설정하려면 어떻게해야합니까?

+0

정적 IP를 사용하는 경우 사용자가 어떤 IP를 사용하고 있는지 테이블을 유지하십시오. –

답변

0
Client.localhost.Service1 service = new Client.localhost.Service1(); 
    service.Credentials = new System.Net.NetworkCredential("username", "pass", ""); 
0

Windows 인증을 사용하도록 웹 서비스를 설정하는 것은 쉽습니다. IIS에서 인증 모드를 변경하기 만하면됩니다!

해당 서비스와 통신하는 것은 또 다른 문제입니다. 우선, 소비 애플리케이션의 웹 설정에서 서비스 참조를 올바르게 설정해야합니다. 아래 보안 섹션은이 기능을 작동시키는 데있어 가장 중요한 부분입니다.

<system.serviceModel> 
<bindings> 
<basicHttpBinding> 
    <binding name="ServiceSoap" 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="Transport"> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" /> 
     <message clientCredentialType="UserName" algorithmSuite="Default" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<client> 
    <endpoint address="http://yourservice.com/Service.asmx" 
    binding="basicHttpBinding" bindingConfiguration="ServiceSoap" 
    contract="ServiceClient.IServiceSoap" name="ServiceSoap" /> 
</client> 

그런 다음, 당신은 당신이 그것을 사용하기 전에 클라이언트 객체의 윈도우 자격 증명을 설정해야합니다.

var credentials = ServiceSoapClient.ClientCredentials; 
credentials.Windows.ClientCredential.Domain = "domain"; 
credentials.Windows.ClientCredential.UserName = "user"; 
credentials.Windows.ClientCredential.Password = "pwd"; 
credentials.Windows.AllowNtlm = true; 
+0

웹 서비스로 ASP.NET 응용 프로그램의 아주 작은 부분을 노출하는 것은 나쁜 습관이라고 생각합니까? 다른 내부 응용 프로그램과 연결되는 내부 응용 프로그램입니다. – w0051977

+0

두 응용 프로그램이 통신 할 수 있도록 작은 웹 서비스를 만드는 것은 좋지 않지만 다른 의견을 환영합니다. – SouthShoreAK

+0

감사합니다. 당신은 답안의 web.config 코드를 인용했습니다. 웹 서비스에 대한 서비스 참조를 만드는 경우이 코드가 자동으로 생성됩니까? – w0051977