鉴于以下情况:
带有IIS7.5的1
中已验证的user)
'Trusted computer for delegation'在应用程序中,用户可以上传文件。这个上传的文件必须保存在服务器2上。在代码中,我们创建到此服务器2的UNC路径,并将其保存在那里。
public ActionResult Upload(HttpPostedFileBase file)
{
var savedDirectory = "\\Path\To\Server2";
if (Directory.Exists(savedDirectory))
{
file.SaveAs(savedFileName);
}
else
{
Directory.CreateDirectory(savedDirectory);
file.SaveAs(savedFileName);
}
return RedirectToAction("Action", "Controller", new { id = 1 });
}我们在服务器1上安装了应用程序,并在Server 1上进行了本地测试,一切顺利。文件上传到服务器2,没有问题。
当我们从客户端桌面测试相同的场景时,我们会看到一个错误,说明没有足够的权限在服务器2上保存文件。
wireshark会话显示Server 1没有模拟,因为Server 2上的经过身份验证的用户是空/匿名的。
冒充为特定用户而不是身份验证用户
我们没有使模拟工作,所以我们创建了一个服务帐户,并将应用程序配置为使用这个Specific User而不是Authenticated User来模拟。服务帐户是域帐户,对服务器2上的文件夹具有权限。
当我们试图上载时,服务帐户对我们上传文件的本地文件夹没有权限。
委派
我们通过Impersonation in asp.net mvc了解到,我们需要信任Server 1进行委托。
在我们信任服务器1进行委托之后:仍然没有权限在Server 2上保存文件。我们尝试了这两种方法,都是模仿为Authenticated User en Specific user。
委托不起作用的
Authenticated User:服务器上的权限不足,2Specific User无法工作:本地folder上的权限不足
我们错过了什么吗?我们需要额外的授权步骤吗?
发布于 2012-02-09 14:20:05
我们通过以下方式解决了这个问题:
Authentication)中的
Kerberos provider添加到应用程序中(右键单击发布于 2012-06-20 02:19:02
我今天遇到了这个错误,下面是我修复这个问题的步骤:
https://stackoverflow.com/questions/8823077
复制相似问题