我想使用登录用户的凭据从支持NTLM的WebAPI访问UNC路径。为此,我使用以下代码:
Using DirectCast(RequestContext.Principal.Identity, System.Security.Principal.WindowsIdentity).Impersonate()
Dim FileList As String() = IO.Directory.GetFiles("\\file-server\path", "*.xlsm")
End Using
但是,这不起作用。
在我的服务器上执行该操作时,仍然会拒绝访问。如果我在使用块中调用System.Security.Principal.WindowsIdentity.GetCurrent().Name
,我会得到正确的用户名。此外,如果我运行应用程序池并将应用程序池设置为我自己的用户标识,它就可以运行。但出于安全考虑,我们希望坚持使用标准的.net池标识。
知道如何让它发挥作用吗?