4

我們的應用程序允許用戶讀寫\\ foo \ bar $共享中的文件。授予「Everyone」讀寫權限的管理員在共享權限安全選項卡上。當域用戶試圖寫該共享,我們的應用程序會記錄以下內容:爲什麼域用戶獲得授予「每個人」的讀寫權限的UnauthorizedAccessException?

TYPE: System.UnauthorizedAccessException 
MSG: Access to the path '\\foo\bar$\00074458_00076402.tif' is denied. 
SOURCE: mscorlib 

SITE: WinIOError 
    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
    at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite) 
    at  Ceoimage.Basecamp.DocumentServers.DirectAccessServer._TryCommitQueueFile(IDocQueueFile file) 
    at Ceoimage.Basecamp.DocumentServers.DirectAccessServer.SendQueuedFiles(Int32 queueId, Int32 userId, IDocQueueFile[] queueFiles) 
    at Ceoimage.Basecamp.ScanDocuments.DataModule.CommitDocumentToQueue(QueuedDocumentModelWithCollections queuedDocument, IDocQueueFile[] files) 

我沒有一個域帳戶,所以我不能對此進行測試的用戶的有效權限,但「每個人」擴展到域用戶?如果「每個人」都被認爲是本地負責人,域用戶是否必須除Active Directory以外還需要向服務器進行身份驗證?它被認爲是當地的校長嗎?

我們的應用程序是在Windows域的Windows 7客戶端上運行的.NET WinForms應用程序,它嘗試訪問運行Windows Server 2008 R2 Standard SP 1的文件服務器。如果您無法分辨,我有點在這裏我的深度。

+2

「Everyone」組包含「Domain Users」和「Authenticated Users」組中的所有用戶。你確定這個特定用戶是一個域用戶嗎?也許他們在該工作站上以本地管理員身份運行它,或者類似的東西。 –

+0

你的幾乎是一個完整的答案,吉姆木星,但我不知道你的後續問題的答案。現在詢問他們的管理員。 – flipdoubt

+0

可能。我也在想共享權限可能不會被繼承到文件。所以你可以讓他們檢查一下(這是一個設置)。 –

回答

1

啊,棘手的授權..

我不得不處理這個問題相當長的一段時間。這是問題的原因:LDAP在GUID中工作。管理員組將絕對具有與目前在該域中存在的guid不同的guid。

發生此問題是因爲機器變得不同步或者因爲這些文件剛剛從以前的機器轉移到新版本(不同的HDD)上。

有一個修復!

我會添加一個捕獲和內,我將採取從文件的所有權和從頭開始重新應用域策略。

我最近已經這樣做了,如果您需要更多信息,請告訴我。

+0

指向URL以瞭解如何以編程方式「重新應用域策略」? – flipdoubt

+0

嗯,編程方式.. NET將是相當簡單的。 'foreach(directory.enumeratefiles(..)中的文件'我不必親自去做,因爲我只有一臺PC來處理。右鍵單擊c:驅動器並獲取所有權並傳播,並分配適當的安全設置。這裏[鏈接](http://blog.salamandersoft.co.uk/index.php/2009/10/setting-the-owner-of-files-and-directories-in-c/)。這裏是如何獲得鏈接;需要通過[link](http://bit.ly/18NF7fX)閱讀的一點點@flipdoubt – WickedFan

+0

看起來像第一個鏈接沒有工作出於某種原因[在這裏找到](http:// goo。 gl/XkxCf) – WickedFan