1

我一直在尝试在我的 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服务器上是否有任何配置?或者还有什么要补充的?

4

1 回答 1

0

你的配置文件里有这个吗?

<identity impersonate="true" />
于 2018-07-23T12:01:59.360 回答