LoginView控件,仅为特定用户显示登录视图
本文关键字:用户 显示 登录 视图 控件 LoginView | 更新日期: 2023-09-27 18:17:37
所以我使用LoginView控件。这就是我所知道的,如果用户登录,它将显示模板的Loggedin视图,否则它显示AnonymousTemplate。这在我的页面上有效。我在很多页上都用过这个。
现在我的问题是:
-
是否有一种方法,我可以限制从显示非成员的登录视图,即使他们登录。换句话说,loggedin视图应该只显示给typeA成员,而不显示给typeB成员。
-
是否有一种方法,我可以以编程方式隐藏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>
查看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>
如果你不想显示任何特定模板的内容,请将其保留为空。
Richards的回答提供了处理基于角色的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;