我們的客戶端項目中有一個場景,客戶端應用程序將其保存並嘗試從共享文件夾位置(這是一個虛擬共享文件夾)中獲取文件。但是我們一直面臨着特定應用程序用戶標識無法訪問該共享文件夾的問題。因此,如果該共享文件夾位置上的該用戶標識存在訪問權限,則需要事先檢查幫助。所以想着在C#或vb.net中開發一個應用程序來檢查用戶訪問。如何檢查特定用戶是否有權訪問使用C#的共享文件夾位置
1
A
回答
2
我相信最好檢查權限的方式,就是嘗試訪問目錄(讀/寫/列表)& catch unauthorized access error。
如果你想檢查權限,下面的代碼應該滿足你的需要。您需要爲目錄閱讀Access Rules
。
private bool DirectoryCanListFiles(string folder)
{
bool hasAccess = false;
//Step 1. Get the userName for which, this app domain code has been executing
string executingUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
NTAccount acc = new NTAccount(executingUser);
SecurityIdentifier secId = acc.Translate(typeof(SecurityIdentifier)) as SecurityIdentifier;
DirectorySecurity dirSec = Directory.GetAccessControl(folder);
//Step 2. Get directory permission details for each user/group
AuthorizationRuleCollection authRules = dirSec.GetAccessRules(true, true, typeof(SecurityIdentifier));
foreach (FileSystemAccessRule ar in authRules)
{
if (secId.CompareTo(ar.IdentityReference as SecurityIdentifier) == 0)
{
var fileSystemRights = ar.FileSystemRights;
Console.WriteLine(fileSystemRights);
//Step 3. Check file system rights here, read/write as required
if (fileSystemRights == FileSystemRights.Read ||
fileSystemRights == FileSystemRights.ReadAndExecute ||
fileSystemRights == FileSystemRights.ReadData ||
fileSystemRights == FileSystemRights.ListDirectory)
{
hasAccess = true;
}
}
}
return hasAccess;
}
+0
謝謝Deshdeep。但在這裏我有要求檢查特定用戶ID的訪問權限。你能幫助我做到這一點嗎? –
+0
Chechk這個。 –
+0
Ya Deshdeep。這將是很有幫助的。謝謝你soo :) –
相關問題
- 1. 如何確定當前用戶是否有權訪問特定文件夾?
- 2. 檢查共享文件夾的寫訪問當前用戶
- 3. 檢查使用Leaflet的locate()時用戶是否共享位置()
- 4. 檢查用戶是否有權訪問特定狀態
- 5. 檢查一個特定的文件是否有權訪問jQuery
- 6. 確定用戶使用PowerShell訪問共享文件夾
- 7. 檢查一個特定用戶是否有權訪問sharepoint編程(C#代碼)
- 8. 檢查用戶是否具有查看文件夾權限
- 9. 是否有任何方式來限制訪問具有模擬權限的用戶訪問特定文件夾?
- 10. 如何檢查用戶是否具有對共享文件夾的完全控制權限?
- 11. 如何檢查用戶是否具有windows api文件的訪問權限
- 12. 訪問權限設置應用程序池用戶訪問FILESTREAM文件共享
- 13. 使用C#創建可從域訪問的共享文件夾
- 14. 如何查找共享jsp文件是否被多個用戶訪問?
- 15. C# - 如何獲得有權訪問遠程計算機上共享文件夾的用戶/組的列表
- 16. 如何檢查網絡共享EXE文件是否被多個用戶使用?
- 17. 使用憑證訪問共享位置
- 18. 如何使用python imaplib訪問共享文件夾?
- 19. 如何使用JavaScript訪問共享/網絡文件夾?
- 20. 如何使用emacs訪問Windows共享文件夾
- 21. 如何檢查只有列出訪問權限的文件夾?
- 22. 如何檢查用戶是否授予Facebook訪問權限?
- 23. Nant - 如何檢查用戶是否具有對特定文件夾的寫入權限。
- 24. 檢查用戶是否具有特定的Windows權限Powershell
- 25. 我的C#應用程序如何測試用戶是否具有「讀取」訪問網絡共享的權限?
- 26. 使用特定於應用程序的帳戶共享文件夾/文件
- 27. 檢查用戶是否有權訪問對象
- 28. 檢查用戶是否有權訪問SQL實例
- 29. 如何授予對特定文件夾的常規用戶shell訪問權限
- 30. Filestream共享文件夾權限問題
請記住「共享」權限和「文件系統」權限之間的區別。您需要同時獲得訪問權限,並且取決於您的組織遵守既定約定的規定而變得相當複雜。 – banging