Hide repeater columns based on user privileges

Can someone explain to me how to hide the relay column based on user privileges.

Say I have:

<asp:Repeater ID="repeater" runat="server> <HeaderTemplate> <table id="table_id"> <tr> <th>Name</th> <th>Secret Info</th> <tr> </HeaderTemplate> <ItemTemplate> <tr> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>' /></td> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("SecretInfo") %>' /></td> <tr> <ItemTemplate> <AlternatingItemTemplate> <tr> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>' /></td> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("SecretInfo") %>' /></td> <tr> <AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> 

How can I only display the "Secret Information" column for logging in?

+4
source share
3 answers

You can render the <td> elements conditionally. This simplified example assumes that you have a page level property that indicates whether the user is logged in (you want to do the same in the header template):

 <asp:Repeater ID="repeater" runat="server> <ItemTemplate> <tr> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>' /></td> <% if (this.UserIsLoggedOn) { %> <td><asp:Label ID="Label2" runat="server" Text='<%# Eval("SecretInfo") %>' /></td> <% } %> <tr> </ItemTemplate> </asp:Repeater> 
+6
source

You can do something like the following:

 <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("SecretInfo") %>' Visible='<%# IsUserLoggedOn() %>' /></td> 

Where IsUserLoggedOn is some function that returns a boolean value that is true if the user is registered

+1
source

You can use a loginview control that can display role-based controls (including anonymous and authenticated). You can find the manual here: http://weblogs.asp.net/sukumarraju/archive/2010/07/28/role-based-authorization-using-loginview-control.aspx

So something like:

 <asp:Repeater ID="repeater" runat="server> <HeaderTemplate> <table id="table_id"> <tr> <th>Name</th> <asp:LoginView ID="lvwHeader" runat="server"> <LoggedInTemplate> <th>Secret Info</th> </LoggedInTemplate> </asp:LoginView> <tr> </HeaderTemplate> <ItemTemplate> <tr> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>' /></td> <asp:LoginView ID="lvwItem" runat="server"> <LoggedInTemplate> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("SecretInfo") %>' /></td> </LoggedInTemplate> </asp:LoginView> <tr> <ItemTemplate> <AlternatingItemTemplate> <tr> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>' /></td> <asp:LoginView ID="lvwItem" runat="server"> <LoggedInTemplate> <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("SecretInfo") %>' /></td> </LoggedInTemplate> </asp:LoginView> <tr> <AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> 
0
source

Source: https://habr.com/ru/post/1339077/


All Articles