2010-09-17 18 views
6

我一直讀到,你在IIS網站/虛擬目錄中設置的用戶是運行應用程序的用戶(匿名用戶標識)哪位用戶運行我的asp.net用戶?

但是在應用程序池中,我還可以設置一個用戶(過程模型,身份證)

這兩者之間有什麼區別,以及如果我做文件讀取,哪一個需要訪問?

編輯:

賞金是此quesyion',但如果我使用‘匿名身份驗證’,是我在選擇用戶曾經使用匿名用戶身份「? - '發表評論

回答

2

認爲網站身份作爲一個規則,定義誰可以訪問該網站。如果您指定要使用的匿名帳戶,則該帳戶必須有權訪問該網站。如果禁用匿名訪問,則用戶的憑據必須有權訪問該文件夾。

應用程序池標識定義了應用程序可以執行的操作。應用程序池的工作進程將使用應用程序池標識運行;該帳戶必須被授予訪問應用程序需要訪問的任何資源(SQL Server,文件共享等)的權限。

要回答你的問題:是的,使用匿名帳戶。考慮一下您要託管一百個網站的場景,並且您不希望一個客戶的文件能夠訪問另一個的網站。您將分配匿名訪問給每個客戶。每個站點的匿名帳戶都允許IIS只訪問與該特定站點相關的文件(如果您已正確配置了該帳戶的訪問權限)。

4

結帳this post。 Quote:

這兩個帳戶是不同的東西。 考慮代表網站用戶的網站身份 。如果 你創建一個新網站這個帳戶 是匿名IIS帳戶。如果您 禁用「匿名身份驗證」, 您的用戶必須進行身份驗證 對網站(在 聯網/ Windows域的網站這 可以使用網絡 憑據implicite。)

應用程序池標識是 您的程序集需要運行 的Windows帳戶。通常它是 「網絡服務」帳戶,它是 最小特權帳戶,具有有限的 用戶權限。它確實有 有網絡憑證。這意味着您可以使用它 來針對域中的網絡資源對 進行身份驗證。 您也可以使用它來訪問具有集成 安全性的SQL 服務器數據庫。

例如,如果你的ASP.NET應用程序 必須寫一個文件夾, 你有權限授予 應用程序池帳戶,而不是 網站帳戶。有關應用程序池 身份的更多 信息,請閱讀此處。

+0

太好了!還有一個問題:網站用戶何時使用?引用聲明用於文件訪問和sql server的應用程序池標識,但網站用戶何時用於身份驗證? – Michel 2010-09-17 13:35:01

+0

@Michel,把它看作你決定用來認證用戶的機制。如果您保留匿名身份驗證,任何人都可以訪問您的網站,如果您啓用基本身份驗證,則用戶需要提供憑據才能訪問該網站。 – 2010-09-17 13:39:57

+0

但是如果我使用'匿名認證',用戶是否選擇了'曾經使用過的'匿名用戶身份'? – Michel 2010-09-17 13:54:11

0

@Michel

,如果你對你的網站的匿名訪問帳戶設置(虛擬目錄)

,你們便在web.config中有

<system.web> 
    <identity impersonate="true" /> 
</system.web> 

,這將使用身份。

,如果你有代碼的一部分,你可以設置憑據

CredentialCache.DefaultCredentials

這將指向匿名賬戶,如果你想測試使用的是嘗試

哪些用戶
Thread.CurrentPrincipal.Identity.Name.ToString() 

看看這篇文章以獲取更多信息
http://blogs.iis.net/sakyad/archive/2008/11/19/process-and-thread-identity-in-asp-net-a-practical-approach.aspx

相關問題