簡體   English   中英

從 .NET 核心應用程序訪問 Windows 文件共享時出現 UnauthorizedAccessException

[英]UnauthorizedAccessException when accessing a Windows file share from .NET Core app

我有一個用 .NET 5(即將成為 .NET 6)編寫的應用程序,它允許用戶訪問存儲在一堆不同的用戶定義的 Windows.network 共享上的文件。 該應用程序通過 BEARER 令牌進行保護,並使用 Kestrel 在 Linux 中運行。

通過這個應用程序,用戶可以“附加”一個文件。 基本上,告訴應用程序現有文件在 windows.network 共享上的存儲位置。 然后其他用戶可以單擊該鏈接,應用程序將為他們下載文件。

無論傳入的用戶名和密碼如何,(或者如果我們提供可選的域名)應用程序總是拋出 UnauthorizedAccessException This is the current code and throws when calling GetRequestStreamAsync();

要下載的文件格式是典型的 UNC 路徑。

\serverName\folder1\subfolder2\fileToDownload.pdf

轉換為

file://serverName/folder1/subfolder2/fileToDownload.pdf

FileWebRequest request = (FileWebRequest)WebRequest.Create(uncLink);
                request.Credentials = new NetworkCredential(userName, password);
                request.Method = "POST";
  Stream readStream = await request.GetRequestStreamAsync();

我閱讀的每篇文章都以 IIS 為中心,並且是大約 10 年前的文章,所以沒有幫助。

為將來可能遇到此問題的任何人回答這個問題。

我們找到了這篇文章,並以此為基礎編寫了代碼。 最終,這涉及創建一個文件夾,然后我們將 .network 共享安裝到該文件夾中,然后我們可以將該文件夾視為本地文件夾並從那里下載文件。

由於我們在 docker 中運行,我們還需要啟用一些功能。

"DockerfileRunArguments": "--cap-add=SYS_ADMIN --cap-add=DAC_READ_SEARCH"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM