首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS 7.5上MVC 3应用程序中的模拟和委托

IIS 7.5上MVC 3应用程序中的模拟和委托
EN

Stack Overflow用户
提问于 2012-01-11 16:41:51
回答 2查看 2.9K关注 0票数 2

鉴于以下情况:

带有IIS7.5的1

  • Windows

  • 2008 R2 x64 web服务器、Server 2003 R2 x64文件服务器、带有Windows身份验证和模拟的Server R2 3应用程序(在Active directory

  • Internet Explorer 8

中已验证的user)

  • Configured Server 1作为'Trusted computer for delegation'

在应用程序中,用户可以上传文件。这个上传的文件必须保存在服务器2上。在代码中,我们创建到此服务器2的UNC路径,并将其保存在那里。

代码语言:javascript
复制
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

委托不起作用的

  1. Impersonation作为Authenticated User:服务器上的权限不足,2
  2. Impersonation作为Specific User无法工作:本地folder

上的权限不足

我们错过了什么吗?我们需要额外的授权步骤吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-09 14:20:05

我们通过以下方式解决了这个问题:

Authentication)中的

  1. 在服务器1
  2. 域中配置委托并将Kerberos provider添加到应用程序中(右键单击
  3. )
票数 1
EN

Stack Overflow用户

发布于 2012-06-20 02:19:02

我今天遇到了这个错误,下面是我修复这个问题的步骤:

  1. 确保为您的站点启用了ASP.NET模拟。转到Integrated中的站点,在“功能”下双击“身份验证”,然后为应用程序池启用ASP.NET ASP.NET集成模式,
  2. 编辑应用程序的web.config文件,以指定以下设置:
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8823077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档