【发布时间】:2014-09-08 22:35:21
【问题描述】:
我们有一个网络应用程序,可以将文件复制到我们域 (OurDomain) 中的远程服务器。使用另一个域登录到其笔记本电脑,然后使用 OurDomain 登录到 Web 应用程序的用户会出现以下问题。使用 OurDomain\User 同时登录笔记本电脑和 Web 应用程序的用户不会遇到此问题。
我们有两个网络表单:
第一个网络表单使用 System.Security.Principal.WindowsIdentity.GetCurrent() 检索用户 ID,然后使用该用户 ID 发送电子邮件。仅当我们将Windows Authentication 设置为Enabled 并且ASP.Net Impersonation 也设置为Enabled 时,此代码才会检索用户的ID。如果ASP.Net Impersonation 设置为Disabled,则用户将是Network Service。所以我将两者都设置为启用,这里的一切都很好。
第二个网络表单将一些文件复制到远程服务器,也在域 OurDomain 下。将Windows Authentication 设置为Enabled 并将ASP.Net Impersonation 设置为Disabled,则Network Service 用于将文件复制到远程服务器并正确复制。另一方面,如果 ASP.Net Impersonation 设置为 Enabled,它似乎绕过 Network Service 甚至 OurDomain\User 并尝试使用用于登录的凭据进行复制笔记本电脑(另一个域)。文件不复制,我收到错误访问路径被拒绝
我找到的唯一解决方法是将 OurDomain\User 添加到文件夹中,这真的没什么大不了的,但我想看看为什么会这样。
谢谢。
【问题讨论】:
标签: asp.net .net .net-4.0 iis-6 impersonation