我想在现有的Excel应用程序和现有的ASP.Net VB Webforms应用程序之间传递一些数据。在Excel超链接中使用查询字符串到ASP.Net Web应用程序
我认为超链接与一些查询字符串变量将是最直接的方式做到这一点。但是,超链接似乎不保留登录用户的会话。
使用网页上的相同URL测试此功能确实有效。所以看起来Excel正在开始一个新的会话。有关如何制作Excel超链接的任何想法与浏览器超链接的行为方式相同?
我想在现有的Excel应用程序和现有的ASP.Net VB Webforms应用程序之间传递一些数据。在Excel超链接中使用查询字符串到ASP.Net Web应用程序
我认为超链接与一些查询字符串变量将是最直接的方式做到这一点。但是,超链接似乎不保留登录用户的会话。
使用网页上的相同URL测试此功能确实有效。所以看起来Excel正在开始一个新的会话。有关如何制作Excel超链接的任何想法与浏览器超链接的行为方式相同?
单击Excel中的链接通常会打开一个新的浏览器,从而创建一个新的会话。在Excel或超链接中无法真正做到减轻这一点 - 这正是浏览器会话的工作方式。
如果您不能只是当他们访问此网址(我想他们可能会被要求登录等),那么也许你可以考虑使用Cookie来保留用户的身份重新初始化用户的会话状态?
我有这个相同的问题,并使用提琴手我可以看到,当在Excel中的链接,Cookie是而不是被发送到服务器 - 导致会话问题。
我的工作如下;创建一个不需要有效会话的重定向页面,该页面只是重定向到需要有效会话的页面。由于重定向页面在浏览器中 - 重定向页面按预期获取会话cookie。
代码(redirect.htm);
<html>
<body>
Please wait, loading your page...
<script type="text/javascript">
<!--
function getQuerystring(key) {
key = key.replace(/[\[]/,"\\\[").replace(/ [\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
var query = regex.exec(window.location.href);
return query[1];
}
window.location = "http://site-page/" + getQuerystring('page'); //-->
</script>
</body>
</html>
使用http://site-page/redirect.htm?page=this-sub-page从访问访问页面 - 现在适用于我。
我刚刚在使用Firefox作为默认浏览器时偶然发现了这个问题。如果我将IE设置为默认值,问题就会消失。这可能无助于你的情况,但这是一种解决方法。
我也找出了导致问题的原因。在将URL传递到默认浏览器之前,Excel使用IE7请求页面本身。
这是从我们的服务器日志中的一个片段:
"GET /ar/vehicle.php?rv_id=9046 HTTP/1.1" 302 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1 ...
"GET/HTTP/1.1" 302 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1 ...
"GET /?q=node/57 HTTP/1.1" 200 6231 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1 ...
"GET /?q=node/57 HTTP/1.1" 200 8318 "-" "Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0 ...
前三行是Excel的发送请求和处理重定向。最后一行是传递给默认浏览器的内容。
加布里埃尔
老的文章,但我有同样的问题
这里就是我的固定它。
我做了一个超链接指向一个php脚本,它检查了浏览器用户代理,如果它包含术语'ms-office'什么也没做,否则将其重定向到真实页面!
这里是我的本钱:
if (strpos($_SERVER['HTTP_USER_AGENT'],'ms-office') === false) {
header("Location: ".$_GET['url']);
}
只需发送Excel来如redirect.php?url = http://google.com
是的它需要登录。我还没有深入到应用程序的那一面,这似乎很奇怪,我可以自己启动一个新的浏览器窗口或标签,而不需要登录(当已经登录时),但是如果我从Excel中执行它, t似乎有权访问我所认为的存储在机器上的cookie。我不想深入文件系统来打开一个cookie,只是为了复制这个cookie供excel使用。在我看来,并不像浏览器会话的工作方式,而是关于Excel如何工作的更多信息 – 2009-08-19 13:55:14