私は最終的に適切な答えを見つけました..可視性プロパティを設定したくありません (そして、推測するのは難しくありません!)、コードが汚れてしまい、便利ではないためです...ページ Default.aspx があり、そこにあるとします。 Default.aspx ページには 3 つの役割があります。ユーザーの役割に基づいてコンテンツを表示したいので、Loginview を使用し、以下に示すようにテンプレートを使用します。
<asp:LoginView runat="server" ID="loginviewControl1">
<AnonymousTemplate>
<asp:HyperLink runat="server" ID="lnkLogin" Text="Log In" NavigateUrl="~/Account/Login.aspx"></asp:HyperLink>
<Anonymous:AnonymousPart ID = "anonym" runat="server" />
</AnonymousTemplate>
<LoggedInTemplate>
<asp:Label runat="server" ID="WelcomeBackMessage"></asp:Label>
</LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup Roles="Admin">
<ContentTemplate>
<Admin:AdminPart ID ="adminContent" runat="server" />
</ContentTemplate>
</asp:RoleGroup>
<asp:RoleGroup Roles="A">
<ContentTemplate>
<RoleA:RoleAPart ID = "RoleAContent" runat="server"/>
</ContentTemplate>
</asp:RoleGroup>
<asp:RoleGroup Roles="B">
<ContentTemplate>
<RoleB:RoleBPart ID = "RoleBContent" runat="server" />
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
RoleB:RoleBPart、RoleA:RoleAPart、Admin:AdminPart
ユーザーコントロールです!ここに私のサーバーサイドがあります..
protected void Page_Load(object sender, EventArgs e)
{
}
ときどき扱いづらくなってしまうので、視認性を設定するよりマシだと思います!! ロール A のユーザーがログインすると、表示されるコンテンツは RoleA:RoleAPart の部分だけです。