我已经使用 asp.net HyperLink 创建了一个注销链接,其中 NavigateUrl="Default.aspx?Logout=1"。在默认页面加载中,我检查查询字符串是否为空,如果不是会话终止并且用户被重定向到同一页面,没有查询字符串,则充当登录页面。
默认页面加载中的代码是:
if (Request.QueryString["Logout"] != null)
{
FormsAuthentication.SignOut();
Session.Clear();
Session.Abandon();
Response.Redirect("~/Default.aspx", true);
}
当它从 VisualStudio 运行时,它工作正常,但是当它从 IIS 运行时,我得到 The resource cannot be found 错误。说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。请求的 URL:/Default.aspx。
同一页面是程序的打开页面,在打开时调用它没有问题。在调试中,我看到页面加载已激活并输入了 if,因此问题出在 Response.Redirect url 中。我试着去掉 ~/ 或只是 ~ 或做 ../ 或 /ProgramName//Default.aspx。没有任何工作。
编辑:我的错误,问题不在 LOAD 事件中。从 IIS 运行时,程序不会返回服务器,问题出在 HyperLink NavigateUrl。尝试改变它没有帮助。任何想法?