我有两个用户组 - 管理员(A)和主持人(M) - 以及导航菜单。某些链接仅对Admin可见,而其他链接对两者都可见。这是我目前的代码:
@functions{
public string TokenHeaderValue()
{
string cookieToken, formToken;
AntiForgery.GetTokens(null, out cookieToken, out formToken);
return cookieToken + ":" + formToken;
}
}
目前,菜单仅针对版主显示,因为第一行:
$.ajax({
url: url,
type: "POST",
async: false,
data: JSON.stringify(data),
contentType: 'application/json; charset=utf-8',
headers: {
'RequestVerificationToken': '@TokenHeaderValue()'
},
error: function (response) {
alert(response.responseText);
},
success: function (response) {
result = response;
}
});
所以我尝试将Admin组包括在内:
<? if($_SESSION["LogedInAdminId"] && $_SESSION['AdminStatus']=="M") { ?>
<ul>
<li>...</li>
<li>...</li>
<? if($_SESSION["LogedInAdminId"] && $_SESSION['AdminStatus']=="A") { ?>
<li>...</li>
<li>...</li>
<? { ?>
</ul>
<? } ?>
但是,这会破坏代码并显示每个人的菜单 - 管理员,Mod,来宾等。包含两个用户组的正确方法是什么?
答案 0 :(得分:3)
首先,确保使用会话为所有页面启动session。
现在这种语法|| "A"
并不正确。您需要添加新条件。
这是您需要做的事情,并将第二个条件包括在内:
if( $_SESSION["LogedInAdminId"]
&& ($_SESSION['AdminStatus']=="M" || $_SESSION['AdminStatus']=="A")
)
答案 1 :(得分:1)
你必须将这样的用户组合起来检查AdminStatus
是 M 还是(||) A
<? if($_SESSION["LogedInAdminId"] && ($_SESSION['AdminStatus']=="M" || $_SESSION['AdminStatus']=="A")) { ?>