2010-08-16 26 views
0

我有一個在IIS7中託管的web應用程序,我已經設置了appPool以管理員身份運行。現在,如果用戶登錄(表單身份驗證),IIS將使用管理員帳戶(在appPool中)訪問數據庫,但如果用戶未登錄,則IIS將使用導致錯誤的「NT AUTHORITY \ IUSR」帳戶:用戶'NT AUTHORITY \ IUSR'登錄失敗。IIS7中的標識池

任何人都可以請解釋爲什麼它不使用管理員帳戶,而用戶沒有登錄?

回答

1

我無法驗證你說的是正確的,但我可以告訴你應該怎麼做。

1)AppPool用戶應該擁有最少的權限,當然不是管理員權限。除非您真的知道您在做什麼,否則最好將AppPool用戶保留爲默認的網絡服務。

2)您應該在數據庫上創建一個用戶,再次使用最不需要的權限,並在web.config中的ConnectionString中使用該用戶。

+0

yes ...這僅用於測試..在發佈階段,將爲appPool創建一個具有有限權限的專用Windows帳戶。現在問題是IIS在什麼情況下使用appPool身份而不是(它使用' NT AUTHORITY \ IUSR')? – user384080 2010-08-16 04:15:58

+0

據我所知,AppPool用戶運行你的應用程序的所有工作進程。籤或不籤。我認爲你需要看別的地方。你在你的web.config中使用模擬嗎? – Jeroen 2010-08-16 04:25:18

+0

我會想,所以..但我已經運行了SQL分析器。第一次訪問應用程序(沒有用戶驗證),它使用'NT AUTHORITY \ IUSR'帳戶,當用戶登錄時,它將使用應用程序池中的標識。 – user384080 2010-08-16 06:26:55