我遇到了烦人的问题,我可以解决。我在Excel中有URL链接到我的aspx页面:
http://localhost/Myapp/Web/ServiceTicket/ServiceTicketReportView.aspx?ServiceTicketID=21336&CustomerID=7118
浏览器中的显示如下:
http://localhost/Myapp/Login.aspx?ReturnUrl=%2fMyapp%2fWeb%2fServiceTicket%2fServiceTicketReportView.aspx%3fServiceTicketID%3d21336%26CustomerID%3d7118&ServiceTicketID=21336&CustomerID=7118
这意味着我的应用程序重定向到登录页面,这很好。登录后我被重定向到我想要的页面。但这是问题,如果我试图再次打开相同的链接,我重定向到登录页面,我的链接没有显示在网址中。要摆脱这个,我必须删除cookie。
BUT
如果我将它直接粘贴到地址栏,来自记事本,展望或其他任何地方,我要求只登录一次,网址会保留我的链接。 不知何故,它似乎得到了不同的cookie。
有什么想法吗?
编辑:
我发现了这个相关主题,但没有合适的解决方案......
https://superuser.com/questions/444984/excel-hyperlink-not-redirecting-properly-bug
解决:
环顾四周,我发现这篇文章解决了我的问题。它是一个工作,因为Excel会扰乱aspx会话。 http://www.vc2go.com/2009/11/cookie-based-authentication-does-not-work-with-excel.html
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Redirect Page</title>
</head>
<body>
Please wait, redirecting...
<script type="text/javascript">
<!--
function getQuerystring(key)
{
key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^#]*)");
var qs = regex.exec(window.location.href);
return qs[1];
}
window.location = "../" + getQuerystring('page');
//-->
</script>
</body>
</html>
欢呼声。