4

私が作成しているサイトには、認証されていないユーザー用のセクションと、認証されたユーザー用のセクションがあります。

(ほぼ)サイトのすべてのページには、ヘッダーにあるLoginStatusコントロールがあり、ステータスに応じて2つの異なるボタンとして表示されます。

私が抱えている問題は、そのコントロールのLogoutPageUrl値を値 "〜login.aspx"に設定しているにもかかわらず、サイトの認証されていないフォルダーにあるページでは、サイトはページを更新するだけですが、コントロールはユーザーに表示しますコントロールに正しい画像を表示することでログアウトします。そのコントロールをもう一度クリックすると、ログインページに移動します。

これがそのコントロールです:

    <asp:LoginStatus CssClass="loginControlBtn" ID="LoginStatus2" 
    runat="server" LogoutPageUrl="~/login.aspx" 
    LoginImageUrl="~/images/LoginBtn.jpg"
    LogoutImageUrl="~/images/LogoutBtn.jpg" />

また、LoginStatusコントロールのログインオプションをクリックして再度ログインすると、Loginコントロールで指定されたページに移動しませんが、LoginStausコントロールでLoginオプションを選択したときのページに戻ります。 。

そのログインコントロールのコードは次のとおりです。

    <asp:Login ID="helpDeskLoginCtrl" runat="server" 
            DestinationPageUrl="~/admin/HelpDeskOptions.aspx" 
            style="text-align: justify" VisibleWhenLoggedIn="False" Width="421px">
        </asp:Login>

このサイトはフォーム認証を使用しているため、認証されたユーザーのみが「〜/ admin」フォルダー内のページを表示できます。少なくともその部分は、「〜/ admin」フォルダー内のページでログアウトすることを選択した場合と同様に、正しく機能しています。 〜/login.aspx"ページ。

しかし、次にログインするのではなく、再度ログインすると

DestinationPageUrl="~/admin/HelpDeskOptions.aspx

ログインコントロールで指定されているように、元のページに戻ります。

私は本当に困惑しています。

4

2 に答える 2

1

私の大学の先生の一人がこの問題に対する実際の答えを手伝ってくれました。私はそれを信用することはできませんが、同じ問題に遭遇する可能性のある他の人を助けるためにここにそれを置いています。

問題の原因となったプロパティは「LogoutAction」コントロールです。

私が使用しているバージョン(2010)では、デフォルト値は「更新」ですが、「LogoutPageURL」コントロールで指定されたページに常に移動し、そこから戻らないようにするには、「リダイレクト」に変更する必要があります。再度ログインした後に来ました。

これが誰か、フェニックスに役立つことを願っています

于 2012-12-12T15:12:12.010 に答える
0

このページは、LoginStatusクラスに関する回答を提供する必要があります-http ://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginstatus.aspx

PageオブジェクトのIsAuthenticatedプロパティを確認する必要があります。

于 2012-11-26T22:52:45.610 に答える