C#模拟要保存在NAS驱动器上无法正常工作

时间:2018-07-23 10:53:21

标签: c# impersonation advapi32

我一直在尝试在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服务器上有任何配置吗?或其他要添加的内容?

1 个答案:

答案 0 :(得分:0)

将此保存在您的配置文件中吗?

<identity impersonate="true" />