所以我正在使用LoginView Control。这就是我所知道的,如果用户登录,它将显示模板的Loggedin View,否则显示AnonymousTemplate。这适用于我的页面。我在多个页面上使用过它。
现在我的问题是:
我是否可以限制登录视图显示为非成员即使他们已登录。换句话说,登录视图应仅显示为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>
答案 0 :(得分:3)
<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>
如果您不想为特定模板显示任何内容,请将其留空。
答案 1 :(得分: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;