1

我刚刚开始在 .NET 框架中进行编码,所以如果这个问题恰好是微不足道的,我深表歉意。

我现在得到的

使用三个s的main.aspx简单布局的页面iframe

在此处输入图像描述

中间 iframe 内容需要是动态的(首先是login.aspx一页,然后是日志记录entryform.aspx


问题 #1

在 iframe 内登录login.aspx后,重定向到main.aspx

我找到的解决方案

ClientScript.RegisterStartupScript(this.GetType(),"scriptid", "window.parent.location.href='main.aspx'", true);

( http://forums.asp.net/t/1273497.aspx )


问题 #2

重定向/记录后,如何将中间 iframe 内容从login.aspx更改 为entryform.aspx

我想到的愚蠢的解决方案

'#form'添加到 url 并监听main.aspxhashchange中的事件。但是,任何人都可以使用 url 本身访问表单。


所以,基本上我如何找到一种安全的方法来告诉main.aspx页面它需要在重定向/日志记录后更改它的中间 iframe 内容

或者有任何机会在.NET 中有一个request.setAttribute 和 getAttribute,就像在 java 中一样,我错过了并且让我的事情变得困难?

4

3 回答 3

2

跨页面和域传递变量或值不会有问题,您可以使用 post 方法和跨页面发布

于 2013-09-03T05:26:23.357 回答
2

在发现使用 iframe 对我来说并不是最好的主意后,我接受了Tieson T的建议并研究了HttpClient从其他网页获取内容。在我的情况下,它将来自同一个域和其他域。

因为我有 4.0v .NET 而不是HttpClient我使用了HttpWebRequest

代码

HttpWebRequest request = (HttpWebRequest)WebRequest.Create (http://localhost:1706/WebSite3/test.html);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader reader = new StreamReader(response.GetResponseStream(),encode );
string html= reader.ReadToEnd();
myDiv.innerHtml(html);

参考

于 2013-09-03T07:09:38.560 回答
0

将参数传递给 Main.aspx 不是更容易吗?例如

ClientScript.RegisterStartupScript(this.GetType(),"scriptid", "window.parent.location.href='main.aspx?LoadEntry=true'", true);

'main.aspx' 中的客户端 JavaScript 代码将从 'location.search' 读取该参数,如果设置了 'LoadEntry=true' - 会将中间帧的 SRC 设置为“entryform.aspx”。

当然,在“entryform.aspx.cs”中,您需要检查是否确实发生了正确的登录(例如设置了一些会话变量),因此没有人能够简单地将 URL 手动设置为“main.aspx?LoadEntry=true”绕过登录。

于 2013-09-03T10:46:30.227 回答