0

この問題があります.1つのマスターページに1つの「ログイン」リンクボタンと1つの「UserList」リンクボタンがあります。ユーザーがログインし、「UserList」リンクボタンをクリックすると、上記のマスターページを持つ UserList ページが開きます (これは私が達成したことです)。

ただし、ユーザーがログインしていないときに「UserList」をクリックすると、「ログイン」リンクボタンのクリックが呼び出されます。どうすればこれを達成できますか? 助けてください..

4

2 に答える 2

0

これを試して:

MasterPageの HTML内:

LinkBut​​tonLoginの onclick イベントのイベント ハンドラーを定義します。

<asp:linkbutton id="LinkButtonLogin" runat="server" 
    text="Login" onclick="LinkButtonLogin_Click"></asp:linkbutton>

ビューから隠されているダミー ボタンを作成します。次に、ModalPopupExtenderについて、ModalPopupExtenderコントロールの TargetControlID を LinkBut​​tonLogin からButtonInvisible変更ます。これにより、ModalPopupExtenderがコードから非表示/表示可能に効果的に偽装されます。

<asp:button id="ButtonInvisible" runat="server" style="display: none;" />

MasterPage の分離コード:

protected void Page_Load(object sender, EventArgs e)
{
    /*             
        This adds a client-side event to your HyperLink control that mimics
        LinkButtonLogin's onclick event, but ONLY if the current user is not 
        logged in.
    */
    if (!UserIsLoggedIn())
    {
        HyperLinkUserList.Attributes.Add("onclick", 
            "document.getElementById('" + 
                LinkButtonLogin.ClientID + "').click();");
    }
}

protected void LinkButtonLogin_Click(object sender, EventArgs e)
{
    // check if the user is logged in.       
    if (!UserIsLoggedIn())
    {         
        // show the modal login window
        ModalPopupExtender.Show();
    }
    else
    {
        /* 
           This assumes that you always want a user to 
           go to the UserList page upon being logged in.
           You can add some code here to redirect to 
           different pages based on certain criteria.
        */
        Response.Redirect("userlist.aspx");
    }
}
于 2009-07-07T17:31:08.293 に答える
0

これを行う 1 つの方法は、web.config ファイルに認証セクションを追加することです。これにより、ユーザーが UserList リンクをクリックし、ユーザーがログインしていない場合にログイン ページが表示されます。

<location path="UserList.aspx">
    <system.web>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

アプリに適している場合は、コントロールを使用して、ログインしていないユーザーから Userlist リンクを非表示にすることもできます<asp:LoginView>

于 2009-07-07T17:40:10.410 に答える