我正试图在我的视图中做这样的事情:
@if (AuthorizedFor(MyNameSpace.Security.Permissions.Client))
{
<p>This is the Client view</p>
}
else if (AuthorizedFor(MyNameSpace.Security.Permissions.Manager))
{
<p>This is the Manager view</p>
}
我的权限包括Manager和Client,Client具有ImpliedBy = new[] { Manager }
。管理者被列为管理员角色,客户被列为参与者角色。
我的期望是,如果经理登录,他们将只看到经理视图。但是,由于Manager具有客户端权限,因此逻辑仅显示第一个(客户端视图)。如果我同时发出if
语句,那么两者都会弹出。以客户端身份登录时,我只能看到客户端视图。
然而,这是有道理的,是否可以在不做任何重大事情的情况下围绕这一点进行编码?我使用的是我自己的前端,没有绑定到部件,所以ContentPermission模块不是一个选项。
类似的东西
@if (AuthorizedFor(MyNameSpace.Security.Permissions.Client))
{
if (AuthorizedFor(MyNameSpace.Security.Permissions.Manager) {
<p>This is the Manager view</p>
} else {
<p>This is the Client view</p>
}
}
做你做的,但从最强大的角色开始:
@if (AuthorizedFor(MyNameSpace.Security.Permissions.Manager))
{
<p>This is the Manager view</p>
}
else if (AuthorizedFor(MyNameSpace.Security.Permissions.Client))
{
<p>This is the Client view</p>
}
您可以将其扩展到更多的角色,只要首先涉及到最强大的角色,用户将始终显示其角色成员身份所允许的最强大的选项。