2009-04-23 56 views
3

我想要了解關於模擬和委派的文檔,並且問題出現在我的web服務正在運行的帳戶下。如何知道我的web服務在Visual Studio 2005下運行的帳戶

我在我的開發工作站上名爲JOHNXP的日誌記錄爲myDomainName \ johna。從Vstudio2005開始,我通過Debug啓動web服務,並在瀏覽器中顯示wsdl頁面。

從任務管理器,我看到下面的,而在我的.asmx代碼坐在一個斷點:

ASPNET_WP.EXE PID = 1316 =用戶名ASPNET devenv.exe的PID = 3304 =用戶名johna

承載我的ws.asmx代碼的虛擬目錄的IIS目錄安全性選項卡具有「啓用匿名訪問」UNCHECKED並且已檢查「集成Windows身份驗證」。

因此,當MSDN人員聲明「您必須配置服務器進程在其下運行的用戶帳戶」時,他們在我上面描述的小型web服務中引用了什麼?

我從引用: http://msdn.microsoft.com/en-us/library/aa302400.aspx

最後,我想我的冒充什麼身份驗證的域用戶瀏覽到我的web服務的調用的此WebService。我的web服務反過來在另一個服務器上(但是同一個域)使用另一個ASMX web服務。我需要這個遠程web服務來使用模擬的域用戶憑證(不是我在JOHNXP上的web服務的憑證)。

因此,對於我瞭解這一點,我覺得我對我的Web服務使用的帳戶並不清楚。我認爲它是在WinXP的IIS 5.1中的ASPNET,但不確定。

回答

2

默認情況下,在ASP.NET上運行的任何應用程序(包括ASMX Web服務)都將在ASP.NET計算機帳戶(ASPNET)安全上下文中執行,該上下文在主機上具有受限權限。

可以通過啓用模擬來更改此行爲,這將導致ASP.NET應用程序在經過身份驗證的用戶或特定用戶帳戶的安全上下文中執行。模擬在Web.config文件中啓用:

<system.web> 
    <!-- ASP.NET runs as the authenticated user --> 
    <identity impersonate="true" /> 
</system.web> 

<system.web> 
    <!-- ASP.NET runs as the specified user --> 
    <identity impersonate="true" 
      username="DOMAIN\user" 
      password="password" /> 
</system.web> 

集成Windows身份驗證在啓用IIS和匿名Internet用戶帳戶被禁用,通過身份驗證的用戶將客戶端製作的Windows標識HTTP請求。
啓用模擬後,ASP.NET工作進程在處理請求時將使用相同的標識。

+1

我忘了提及我在我的web服務的web.config中有。所以,我得出這樣的結論:導致整個服務使用經過身份驗證的用戶的憑據運行。謝謝您的回答。 – 2009-04-23 21:50:12

2

順便說一句,除了答案,上面它實際上應該是:

<system.web> 
    <!-- ASP.NET runs as the specified user --> 
    <identity impersonate="true" 
      userName="DOMAIN\user" 
      password="password" /> 
</system.web> 

用戶名需要一個大寫的N - > userName的

希望這有助於

相關問題