禁用Kentico中某些项目的暂存日志记录

时间:2014-07-24 14:48:22

标签: kentico

我对附加的图像场景感到困惑...我需要为具有externalrole角色的用户禁用登台日志记录。因此,在这种情况下,我需要禁用3个项目的日志记录。

enter image description here

这意味着我需要进行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;

           }

1 个答案:

答案 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”)) { .... }