加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET拒绝尊重我的权限.

发布时间:2020-12-15 23:31:41 所属栏目:asp.Net 来源:网络整理
导读:我成功地冒充了一个用户.使用LogonUser Interop,例如 [DllImport("advapi32.dll",SetLastError = true)] static extern bool LogonUser( string principal,string authority,string password,LogonSessionType logonType,LogonProvider logonProvider,out In
我成功地冒充了一个用户.使用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);

路径是正确的.

当我使用SaveAs方法保存文件时,是否尊重我的模拟?

是否尝试将文件写入我不知道的另一个帐户?如果是这样,我该怎么改呢?

使用SaveAs方法似乎没有大量的控制 – 而不是单个重载.使用这个对象有什么其他替代方法可以更好地控制我的凭据吗?

解决方法

这听起来像双跳身份验证问题.您是否试图让网络共享修改访问您网站的默认IIS用户(例如ASPNET),并运行POST / SaveAs,而不使用模拟代码?如果失败,您应该查看IIS中是否安装了可能导致服务器跳转身份验证问题的信息.这可能是一个开始的好地方:

http://weblogs.asp.net/owscott/archive/2008/08/22/iis-windows-authentication-and-the-double-hop-issue.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读