2012-04-04 23 views
1

既存のasp.netイントラネットアプリケーションにWebサービスを追加しました。目的は、同じドメイン上の他のイントラネットアプリケーションに機能を公開することです。Webサービス - Windows認証

イントラネットアプリケーションはWindows認証を使用します。 Windows認証を使用するようにWebサービスを設定するにはどうすればよいですか?

+0

スタティックIPを使用している場合は、どのユーザーがどのIPにいるのかの表を保管してください。 –

答えて

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

Windows認証を使用するようにWebサービスを設定するのは簡単です。 IISで認証モードを変更するだけです!

このサービスと通信することは別の問題です。まず、消費アプリケーションのWeb設定でサービス参照を適切に設定する必要があります。以下のセキュリティセクションは、これを動作させるための最も重要な部分です。

<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> 

その後、あなたはそれを使用して開始する前に、クライアントオブジェクトのWindowsの資格情報を設定する必要があります。

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アプリケーションの非常に小さな部分をWebサービスで公開するのは悪い習慣だと思いますか?別の内部アプリケーションにリンクする内部アプリケーションです。 – w0051977

+0

2つのアプリケーションが通信できるように小さなWebサービスを作成するのは悪い習慣だとは思わないが、私は他の意見も歓迎する。 – SouthShoreAK

+0

ありがとうございます。あなたはあなたの答えにweb.configのコードを引用しています。このコードは、Webサービスのサービス参照を作成すると自動的に生成されますか? – w0051977