3

したがって、LoginView コントロールを使用しています。これは私が知っていることです。ユーザーがログインしている場合、テンプレートの Loggedin View が表示されます。それ以外の場合は、AnonymousTemplate が表示されます。これは私のページで機能します。これを複数のページで使用しました。

今私の質問は:

  1. ログインしている場合でも、非メンバーに対してログイン ビューが表示されないように制限する方法はありますか。

  2. 特定のユーザーの Loggedin/AnonymousTemplate をプログラムで非表示にする方法はありますか。例: コード ビハインド:

    If(type of member == A) then
       Loggedin.visible = true
    else
     loggedin.visible = false
    end if
    

#2が正しくないように見えることは知っていますが、どれが最善の方法かわかりませんか?

<asp:LoginView id="LoginView1" runat="server">
       <AnonymousTemplate>
             Please log in for personalized information.
       </AnonymousTemplate>
       <LoggedInTemplate>
             Thanks for logging in 
             <asp:LoginName id="LoginName1" runat="Server"></asp:LoginName>.
       </LoggedInTemplate>
</asp:LoginView>
4

2 に答える 2

3

プロパティRoleGroupsご覧ください。

<asp:LoginView id="LoginView1" runat="server">
   <AnonymousTemplate>
      (Content for anonymous users here)
   </AnonymousTemplate>
   <LoggedInTemplate>
      (Content for non-members here)
   </LoggedInTemplate>
   <RoleGroups>
      <asp:RoleGroup Roles="member">
         <ContentTemplate>
            (Content for members here)
         </ContentTemplate>
      </asp:RoleGroup>
   </RoleGroups>
</asp:LoginView>

特定のテンプレートについて何も表示したくない場合は、空のままにします。

于 2013-06-07T17:03:49.330 に答える
0

リチャーズの回答は、ロールベースを処理するためのより良い方法を提供しますasp:LoginView

コントロールの可視性を設定するためのより複雑なロジックがある場合は、以下のコード ビハインドから実行できます。

<asp:LoginView id="LoginView1" runat="server">
    <AnonymousTemplate>
       <div id ="test1" runat="server">testing ....</div> 
    </AnonymousTemplate>

その後

var item = HeadLoginView.AnonymousTemplate;

var testDiv= HeadLoginView.FindControl("test1");
testDiv.Visible = true;
于 2013-06-07T16:55:36.657 に答える