2012-02-01 90 views
1

我一直在使用asp.net 4.0網站,似乎在從存儲在app_data文件夾中的數據庫中刪除問題。ASP.NET憑據問題

我在actice目錄中創建了一個域組,並使用web.config文件來限制對允許修改數據庫的某些頁面的訪問。在我的測試機器和生產服務器上一切正常,但問題在於服務器上,即使它在您訪問頁面時識別用戶,當您嘗試刪除某個項目時它拒絕訪問並且不允許您刪除該項目。

用戶對該文件夾具有讀/寫權限,但仍拒絕訪問。我做了一些測試,並允許所有人讀取/寫入acces,並允許我刪除,但我不喜歡設置該選項。

有誰知道是什麼原因導致了這個問題,以及正確的修復方法是什麼?我假設我必須讓網站知道哪個用戶正在運行該應用程序,然後纔會嘗試刪除,以便他們可以寫入數據庫,但我認爲這會自動執行,因爲我使用了Windows身份驗證。

如果有人有任何信息,我將不勝感激。

回答

1

爲您的網站運行應用程序池的用戶帳戶是唯一需要該數據庫文件的修改權限的用戶帳戶。

+0

因此,即使我限制對特定域用戶的訪問,他們在技術上並不是那些運行該應用程序的人?這是否意味着我只需要在我的應用程序正在運行的服務器上提供修改文件夾的權限? – user1183117 2012-02-01 16:23:04

+0

這是正確的:一個特定的用戶帳戶(應用程序池用戶)正在運行您的應用程序。您的AD用戶只能訪問/使用該應用程序。與訪問您的app_data文件夾無關,IIS中的Windows身份驗證的工作原理是,它僅在考慮授權經過身份驗證的用戶的決策時考慮物理文件權限,即使這在邏輯上不應該是必需的。如果你想定義最小的權限,那麼修改規則到db文件;否則,可以修改整個app_data文件夾的權限。 – 2012-02-01 16:34:24

+0

聽起來不錯,所以用戶只需訪問應用程序池當前正在運行的站點,並且web.config文件只是檢查訪問它的人是否是合適的用戶並拒絕訪問,所以訪問站點的人無關緊要如果應用程序池沒有寫入數據庫的權限。感謝您的信息。這裏有很多信息,以及如何限制訪問和設置,但他們從不告訴你安全系統如何工作的細節以及需要設置的小事情。我感謝您的幫助。 – user1183117 2012-02-01 16:39:28