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