0

これは非常に奇妙なシナリオで、

たとえば、「 http://web.site.com 」のように自分のサイトをこのように閲覧するとします。私のサイトは私のホームページを完全に表示します。上部のこのページでは、1 つのユーザー コントロールを使用しており、このユーザー コントロールにはログアウト リンク ボタンが表示されています。

ケース 1: このシナリオでこのボタンをクリックすると、起動しません。

ケース 2: しかし、「 http://web.site.com/default.aspx 」のように自分のサイトを開くと、正しく動作して起動します。

誰でもこれについて私に提案できますか?

以下のコントロールはユーザーコントロールで使用しています

<asp:linkbutton id="logoutLinkButton" runat="server" 
         onclick="logoutLinkButton_Click1">logout</asp:linkbutton>

リンクボタンのイベントコードは

protected void logoutLinkButton_Click1(object sender, EventArgs e)
         {
             var url = this.Request.RawUrl;
             Authentication.Logout();
             Response.Redirect(url); 
         }
4

2 に答える 2

1

問題は、Request.RawUrlを使用していることです。

生の URL は、ドメイン情報に続く URL の一部として定義されます。URL 文字列 http://www.contoso.com/articles/recent.aspxでは、生の URL は /articles/recent.aspx です。生の URL にはクエリ文字列が含まれます (存在する場合)。

あなたの場合"http://web.site.com" RawUrlは空になるので、何もしません。Request.Url.GetLeftPart(UriPartial.Authority)代わりに、次のように使用できます

protected void logoutLinkButton_Click1(object sender, EventArgs e)
{
   var url = this.Request.Url.GetLeftPart(UriPartial.Authority);
   Authentication.Logout();
   Response.Redirect(url); 
}
于 2013-05-08T11:42:42.367 に答える