3

所以我正在使用 LoginView 控件。这就是我所知道的,如果用户登录,它将显示模板的登录视图,否则显示 AnonymousTemplate。这适用于我的页面。我已经在多个页面上使用了它。

现在我的问题是:

  1. 有没有一种方法可以限制登录视图显示给非成员,即使他们已经登录。换句话说,登录视图应该只显示给 typeA 成员而不是 typeB。

  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 回答