/// <summary> /// Denies a specific page permissions for selected role. /// </summary> /// <param name="roleName">The role name.</param> /// <param name="roleProvider">The role provider name.</param> /// <param name="pageTitle">The page title.</param> public void DenyPermissionsForRole(string roleName, string roleProvider, string pageTitle) { RoleManager roleManager = RoleManager.GetManager(roleProvider); var role = roleManager.GetRole(roleName); PageManager pagemanager = PageManager.GetManager(); PageNode mypage = pagemanager.GetPageNodes().FirstOrDefault(pn => pn.Title == pageTitle); if (mypage != null) { pagemanager.BreakPermiossionsInheritance(mypage); pagemanager.SaveChanges(); if (role != null) { var perm = pagemanager.GetPermissions() .Where(p => p.SetName == SecurityConstants.Sets.Pages.SetName && p.PrincipalId == role.Id && p.ObjectId == mypage.Id) .SingleOrDefault(); if (perm == null) { perm = pagemanager.CreatePermission( SecurityConstants.Sets.Pages.SetName, mypage.Id, role.Id); mypage.Permissions.Add(perm); } perm = pagemanager.GetPermission( SecurityConstants.Sets.Pages.SetName, mypage.Id, role.Id); perm.DenyActions( false, SecurityConstants.Sets.Pages.View, SecurityConstants.Sets.Pages.Create, SecurityConstants.Sets.Pages.Modify, SecurityConstants.Sets.Pages.CreateChildControls, SecurityConstants.Sets.Pages.EditContent, SecurityConstants.Sets.Pages.ChangeOwner, SecurityConstants.Sets.Pages.Delete); pagemanager.SaveChanges(); } } }