【问题标题】:Resonse.Redirect works from VisualStudio but not from IISResponse.Redirect 适用于 Visual Studio,但不适用于 IIS
【发布时间】:2013-04-30 01:29:14
【问题描述】:

我使用 asp.net HyperLink 创建了一个注销链接,其中 NavigateUrl="Default.aspx?Logout=1"。 在默认页面加载中,我检查查询字符串是否为空,如果不是,会话终止并且用户被重定向到同一页面,没有查询字符串,充当登录页面。

Default PageLoad 中的代码是:

      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。尝试改变它没有帮助。有什么想法吗?

【问题讨论】:

  • 你在 unix 上运行你的网站吗?
  • 如果将行替换为:Response.Redirect(Request.Url.GetLeftPart(UriPartial.Path), true);,会发生什么?
  • @Aristos 我不知道。
  • 我认为有两种情况。第一,文件系统区分大小写,文件是default.aspx,您将其称为Default.aspx,第二种情况是尝试从非安全页面进行第二次重定向(httpshttp)并且没有正确安装。

标签: c# asp.net hyperlink logout response.redirect


【解决方案1】:
 if (Request.QueryString["Logout"] != null)
        {
            FormsAuthentication.SignOut();
            Session.Clear();
            Session.Abandon();
            Response.Redirect("~/Default.aspx", false);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2021-02-25
    • 2020-06-13
    • 2015-07-02
    • 2016-04-25
    • 2011-09-27
    • 1970-01-01
    相关资源
    最近更新 更多