0

NavigateUrl="Default.aspx?Logout=1" を使用して、asp.net HyperLink でログアウト リンクを作成しました。デフォルトの PageLoad で、クエリ文字列が null であるかどうかを確認します。そうでない場合、セッションは終了し、ユーザーはログイン ページとして機能するクエリ文字列なしで同じページにリダイレクトされます。

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。探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。次の URL を見直して、スペルが正しいことを確認してください。要求された URL: /Default.aspx。

その同じページがプログラムの開始ページであり、開始時に呼び出されても問題はありません。デバッグでは、ページの読み込みがアクティブになり、if が入力されているため、問題は Response.Redirect URL にあることがわかりました。~/ または ~ だけを外すか、../ または /ProgramName//Default.aspx を実行しようとしました。何も機能していません。

編集: 私の間違いです。問題は LOAD イベントにはありません。IIS から実行している場合、プログラムはサーバーに戻りません。問題は HyperLink NavigateUrl にあります。それを変更しようとしても役に立ちません。何か案が?

4

1 に答える 1