我对附加的图像场景感到困惑...我需要为具有externalrole角色的用户禁用登台日志记录。因此,在这种情况下,我需要禁用3个项目的日志记录。
这意味着我需要进行3次检查。检查#1和#2需要帮助。
1:如果用户是外部用户,则不记录。我需要帮助检查第二部分,IsExternal = true。
2:如果将外部用户添加到站点,则不要记录。在这种情况下检查会是什么?
3:如果角色是外部的,则不要记录。这个检查很好。
代码段:
var obj = e.Settings.InfoObj;
if (
(obj.ObjectTye == PredefinedObjectType.USER && (Check IsExternal ??????)) ||
(check that external user did not get added to the website – how to make this check????) ||
(obj.ObjectType == PredefinedObjectType.ROLE && obj.ObjectCodeName.StartsWith("externalrole"))
)
{
e.Settings.LogStaging = false;
}
答案 0 :(得分:0)
你有你正在使用的对象 - var obj = e.Settings.InfoObj;
因此,从“e”对象中,您可以获得用户ID(e.Settings.InfoObj.ObjectID),根据ID,您可以获取用户是否在外部以及是否属于某个站点的信息,标准API,您将通过用户ID获取用户信息,然后您可以检查它是否是外部的,并使用CMS.CMSHelper.CurrentUserInfo.IsInSite(string siteName)方法检查用户是否已分配给该站点
if(obj.ObjectTye == PredefinedObjectType.USER) {
UserInfo updateUser = UserInfoProvider.GetUserInfo(e.Settings.InfoObj.ObjectID);
if((updateUser.IsExternal)||(updateUser.IsInSite(“sitename”))||(updateUser.IsInRole(“roleName”)) { .... }