该问题是由应用程序连接到网络共享的方式引起的。为了解决这个问题,需要按以下步骤操作:
以下是一个示例代码,展示了如何在 ASP.NET Core Blazor 应用程序中连接到网络共享和访问文件。
using System.IO;
using System.Security.Principal;
public class NetworkShareHelper
{
private const string SHARE_PATH = @"\\server\share\folder\";
public static FileStream GetFileStream(string fileName)
{
ConnectToShare();
var filePath = Path.Combine(SHARE_PATH, fileName);
return File.OpenRead(filePath);
}
private static void ConnectToShare()
{
var identity = WindowsIdentity.GetCurrent();
var userName = identity.Name.Substring(identity.Name.IndexOf('\\') + 1);
var shareUncPath = SHARE_PATH;
var sharePath = shareUncPath.Replace(@"\\", "").Replace('/', '\\');
var networkPath = string.Format(@"\\{0}\{1}", sharePath.Substring(0, sharePath.IndexOf("\\")), sharePath.Substring(sharePath.IndexOf("\\") + 1));
var connectionInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = string.Format("/c net use {0} {1} /user:{2} *",
shareUncPath, networkPath, userName),
CreateNoWindow = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
};
var process = new Process();
process.StartInfo = connectionInfo;
process.Start();
process.WaitForExit();
var output = process.StandardOutput.ReadToEnd();
var error = process.StandardError.ReadToEnd();
var exitCode = process.ExitCode;
if (exitCode != 0