我已經將Web服務添加到現有的asp.net Intranet應用程序。目的是向同一個域上的其他Intranet應用程序公開功能。Web服務 - Windows身份驗證
Intranet應用程序使用Windows身份驗證。如何設置Web服務以使用Windows身份驗證?
我已經將Web服務添加到現有的asp.net Intranet應用程序。目的是向同一個域上的其他Intranet應用程序公開功能。Web服務 - Windows身份驗證
Intranet應用程序使用Windows身份驗證。如何設置Web服務以使用Windows身份驗證?
Client.localhost.Service1 service = new Client.localhost.Service1();
service.Credentials = new System.Net.NetworkCredential("username", "pass", "");
設置Web服務以使用Windows身份驗證很容易。您只需在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;
您認爲使用Web服務公開ASP.NET應用程序的一小部分是不好的做法嗎?這是一個內部應用程序,將鏈接到另一個內部應用程序。 – w0051977 2012-04-04 19:43:22
我不認爲創建一個小型Web服務以允許兩個應用程序進行通信是不好的做法,但是我歡迎任何其他意見。 – SouthShoreAK 2012-04-04 19:53:45
謝謝。您在答案中引用了web.config中的代碼。如果您爲Web服務創建服務引用,是否自動生成此代碼? – w0051977 2012-04-04 20:04:34
查看它的另一種方法 - 如果您使用的是靜態IP,請保留一個用戶在哪個IP上的表格。 – 2012-04-04 16:17:55