2010-09-03 44 views
5

我正在嘗試習慣II7,已經與IIS6工作了一段時間。IIS 7模擬和身份

在IIS 6中,我會在web.config中設置<identity impersonate="true"/>,並確保我將正確的NTFS權限應用於IUSR_ [MACHINENAME]帳戶,如果文件夾需要超過讀取權限。

在IIS 7中,我無法重複此設置而無需訴諸太多權限。

如果我在IIS 7中使用<identity impersonate="true"/>,Environment.Username告訴我我的確在模仿IUSR帳戶,這是新的等價物。但是,如果我使用表單身份驗證登錄到網站的管理部分,它會以與我預期不同的方式進行冒充。

隨着網絡服務設置的應用程序池

  • 沒有登錄:IUSR,沒有模擬:[計算機] $
  • 登錄:[計算機] $,而不是模擬:[計算機] $

隨着應用程序池中的本地服務組:

  • 在未登錄:IUSR,不impersona婷:LOCAL SERVICE
  • 登錄:LOCAL SERVICE,沒有模擬:LOCAL SERVICE

如果我給IIS_IUSRS帳戶NTFS權限,我可以做的事情工作得很好,但是這似乎有些奇怪。我怎樣才能模仿IUSR賬戶?或者,我應該將NTFS權限授予IIS_IUSRS?

我很感謝IIS7中這一改變的一個很好的解釋 - 我已經四處搜索,並且無法通過表單身份驗證找到對此用法的解釋。

+0

@ScottE嗨,你解決了這個問題? – Vladut 2016-09-19 11:49:27

回答

1

下面是一個TechNet文章摘錄:

如果啓用一個 ASP.NET應用程序模擬,該應用程序 可以運行在兩個不同的 上下文之一中:作爲經過IIS 7驗證的用戶 或作爲您設置的任意帳戶 。對於 例如,如果您使用匿名 認證和選擇運行 ASP.NET應用爲 身份驗證的用戶,應用程序 將設立 匿名用戶(通常IUSR)的帳戶下運行。 同樣,如果您選擇在任意 帳戶下運行 應用程序,則該帳戶將在該帳戶的任何 安全上下文中運行。

以下是完整的文檔:

http://technet.microsoft.com/en-us/library/cc730708%28WS.10%29.aspx

+0

這並不能解釋通過表單身份驗證登錄時發生的情況。試試我上面的例子,你會看到。 – ScottE 2010-09-07 00:17:56

+0

http://technet.microsoft.com/en-us/library/cc733010%28WS.10%29.aspx – Cypher 2010-09-07 19:36:40

1

IIS 7中的管道更改處理身份驗證的方式與以前的版本非常不同。大多數情況下儘可能,但設置是不同的。

你應該看看在IIS 7.0「重大更改」此條它應該幫助你縮小到發生了什麼

http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/

希望幫助

+0

我已經閱讀過 - 我沒有收到錯誤。這不是一個突破性的改變,這是我正在尋找的一種理解。 – ScottE 2010-09-03 10:29:02