0

我有一个使用表单身份验证的 MVC4 ASP.NET 应用程序。我有一个 iframe 视图,我想显示来自使用域身份验证的本地 Intranet 站点的内容。MVC 网站的用户无权访问本地服务器,因此我需要模拟域用户来显示本地内容。我尝试先创建一个 webRequest,但它没有保存凭据。我在这两个服务器中都没有管理员权限,因此无法更改 iis 或其他设置。有任何想法吗?

4

1 回答 1

0

通常,通过 Internet 访问时冒充域用户是非常糟糕的安全性。很有可能,如果 Intranet 站点没有公开,那么它是出于某种原因公开的,您可能会通过免费提供的网站打开它,从而使公司资源受到攻击。

一种更安全的方法是复制您要公开的 Intranet 站点的逻辑,并精心地将其功能合并到外部 MVC 应用程序的页面上。这是更多的工作,但它可能不会让你成为黑客或脚本小子能够窃取有价值数据的原因。

话虽如此,使用身份验证模拟 Web 请求的方法是创建一系列 HttpRequest 对象,并存储 cookie 信息。这就是所有身份验证的发生方式,只要您将 cookie 从请求传递到请求,您就应该可以自由支配。但是不要这样做,除非您绝对确定您的公司知道潜在的灾难,并且希望 Intranet 应用程序的维护者知道他们正以这种方式暴露。

public function badIdea() {
  WebRequest request = WebRequest.Create (
    "intranet-login-url");
  request.Credentials = CredentialCache.DefaultCredentials;
  using( WebResponse response = request.GetResponse ()) {
    CookieCollection authCookies = response.Cookies;
  }

  // now pass authCookies' contents to each future WebRequest's cookie collection
  //  to allow all manner of unscrupulous individuals to access your valuable
  //  company sekrits!
}
于 2013-07-04T20:26:36.973 回答