我成功地冒充了一个用户.使用logonUser Interop,例如
[DllImport("advapi32.dll",SetLastError = true)] static extern bool logonUser( string principal,string authority,string password,logonSessionType logonType,logonProvider logonProvider,out IntPtr token);
这工作正常当我进入我的直接窗口并输入WindowsIdentity.GetCurrent().名称时,模拟的用户显示为我的CurrentUser.当我释放这个用户,它可以追溯到我真正的用户.这里没有问题 – 我在冒充
访问路径[路径名]被拒绝..
我已经能够手动登录Windows,因为我正在冒充,导航并将文件写入该共享.用户一定对我指定的目录具有管理权限.
我允许最终用户上传文件,并使用HttpPostedFileBase对象,将文件写入此共享.本质上来说,我正在限制模拟代码块上传文件.一旦完成,它将返回到原始的经过身份验证的LDAP用户,例如
imp = Impersonation.ImpersonateUser("someuser","somepassword"); HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; ... hpf.SaveAs(path); Impersonation.StopImpersonating(imp);
路径是正确的.
是否尝试将文件写入我不知道的另一个帐户?如果是这样,我该怎么改呢?