在Excel超链接中使用查询string到ASP.Net Web应用程序

我想在现有的Excel应用程序和现有的ASP.Net VB Webforms应用程序之间传递一些数据。

我以为超链接与一些查询stringvariables将是这样做的最直接的手段。 但是,超链接似乎并不保留login用户的会话。

在网页上使用相同的URLtesting这个function是行不通的。 所以看来Excel正在开始一个新的会话。 有关如何使Excel超链接的任何想法的行为与浏览器超链接相同的方式?

我有这个相同的问题,并使用Fiddler我可以看到,当在Excel中的链接,Cookie 不会被发送到服务器 – 导致会话问题。

我的工作如下: 创build一个不需要有效会话的redirect页面,该页面只是redirect到需要有效会话的页面。 由于redirect页面在浏览器中 – redirect页面按预期获取会话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发送请求并处理redirect。 最后一行是传递给默认浏览器的内容。

加布里埃尔

单击Excel中的链接通常会打开一个新的浏览器,从而创build一个新的会话。 在Excel或超链接中没有任何东西可以实现,这就是浏览器会话的工作方式。

如果你不能在访问这个URL时重新初始化用户的会话状态(我假设他们可能会被要求login等),那么也许你可以考虑使用cookie来保留用户的身份?

旧post,但我有同样的问题

这是我如何解决它。

我做了超链接指向一个php脚本,检查浏览器的用户代理,如果它包含术语“ms-office”没有做任何事情,否则redirect到真正的页面!

这是我得到的:

 if (strpos($_SERVER['HTTP_USER_AGENT'],'ms-office') === false) { header("Location: ".$_GET['url']); } 

只需发送Excel到例如redirect.php?url = http://google.com