我一直在尝试在我的 c# 应用程序上实现模拟以将文件保存在 NAS 驱动器上,但即使我的凭据有效。由于用户名或密码不正确,我不断收到错误消息。它工作了几次,然后一直失败。当我在 IIS 上部署它时发生了这种情况。
if (RevertToSelf())
{
if (LogonUser(AppConstants.NASAccessUserName, AppConstants.NASServerDomain,
AppConstants.NASAccessPassword, LogonType.Interactive,
LogonProvider.Default, out _token))
{
if (DuplicateToken(_token, SecurityImpersonationLevel.Impersonation, out _tokenDuplicate))
{
var tempWindowsIdentity = new WindowsIdentity(_tokenDuplicate);
_impersonationContext = tempWindowsIdentity.Impersonate();
return true;
}
throw new Win32Exception(Marshal.GetLastWin32Error());
}
throw new Win32Exception(Marshal.GetLastWin32Error());
}
throw new Win32Exception(Marshal.GetLastWin32Error());
我也尝试使用 LOGON32_LOGON_NEW_CREDENTIALS 作为登录类型以及 LOGON32_PROVIDER_WINNT50,但没有运气。我在这里想念什么?NAS服务器上是否有任何配置?或者还有什么要补充的?