4

我嘗試訪問Windows Server 2008 R2計算機上的IsolatedStorage(GetMachineStoreForAssembly)以獲取新的「管理員」帳戶時遇到了一個有趣的問題。在同一臺機器上的其他用戶可以很好地訪問它。第一次申請是根據這一新帳戶運行並嘗試訪問IsolatedStorage,它失敗:IsolatedStorageException:無法創建商店目錄。 (來自HRESULT的例外:0x80131468)

System.IO.IsolatedStorage.IsolatedStorageException: Unable to create the store directory. (Exception from HRESULT: 0x80131468) 
    at System.IO.IsolatedStorage.IsolatedStorageFile.GetRootDir(IsolatedStorageScope scope, StringHandleOnStack retRootDir) 
    at System.IO.IsolatedStorage.IsolatedStorageFile.InitGlobalsMachine(IsolatedStorageScope scope) 
    at System.IO.IsolatedStorage.IsolatedStorageFile.GetRootDir(IsolatedStorageScope scope) 
    at System.IO.IsolatedStorage.IsolatedStorageFile.GetGlobalFileIOPerm(IsolatedStorageScope scope) 
    at System.IO.IsolatedStorage.IsolatedStorageFile.Init(IsolatedStorageScope scope) 
    at System.IO.IsolatedStorage.IsolatedStorageFile.GetStore(IsolatedStorageScope scope, Type applicationEvidenceType) 

我試圖通過Windows資源管理器瀏覽到IsolatedStorage文件,例如:C:\ ProgramData ...只要我點擊ProgramData,我提出了一個提示:一旦

You don't currently have permission to access this folder. Click Continue to permanently get access to this folder. 

我點擊繼續,我們的應用程序可以讀取/寫入IsolatedStorage沒有問題。

任何人都可以解釋這種行爲嗎?是否有我們應該分配給我們的新用戶的特定權限,以便他們可以訪問IsolatedStorage?

謝謝!

回答

0

當我重新安裝新的Windows操作系統時,我遇到了同樣的情況。如果你有同樣的問題,我相信如果你要檢查文件夾的權限(點擊人民幣,然後點擊'屬性'菜單),你會發現未知用戶的SID(類似S-1-5-21-3626571138-2175758104-1447827851-1013)。但這個未知的用戶是該文件夾的創建者和所有者,因此您必須將自己的所有者更換。所以我想這個問題是關於NTFS而不是.NET,但我相信微軟目錄瀏覽方法/對話框的實現仍然很差。

反正你可以與現有的與setacl替換孤兒SID:

setacl.exe -on C:\ 
      -ot file 
      -actn trustee -trst "n1:S-**old**-XXX;n2:S-**new**-XXX;ta:repltrst" 
      -rec cont