SharePoint 2010 Role Assignment & Anonymous


Role Assignment & Anonymous method using code
  1. Anonymous Access  
  2. Role Assignment in item level


1. Anonymous Access  

private void RestrictedFormPagesCode_Click(object sender, EventArgs e)
        {

SPSite site = new SPSite("http://home");
             SPWeb _web = site.RootWeb;
             _web.AnonymousPermMask64 = _web.AnonymousPermMask64 ^ SPBasePermissions.ViewFormPages;
             _web.Update();
}


 2. Role Assignment in item level

private void RoleAssignment_Click(object sender, EventArgs e)
        {

SPSite site = new SPSite("http://home");
             SPWeb _web = site.RootWeb;
              SPListItem taskitem = CreateAssignTask(_web);

             CreateTaskassign(_web);

             setpermission(taskitem);


}

Helper function for creating a assign task.

       static SPListItem CreateAssignTask(SPWeb _web)
        {
            SPList _list = _web.Lists["task"];
            SPListItem taskitem = _list.Items.Add();
            taskitem["Title"] = "this task assign to basant";
            SPUser _user = _web.EnsureUser(@"home\\basant.pandey"); // If not exist then create the user using  this method
            SPFieldUserValue basant = new SPFieldUserValue(_web, _user.ID, _user.LoginName);
// SPFieldUserValue used for set complex data type values. There are many more classes are used like SPFieldUrlValue. Because in SharePoint every think store as a string. Working on the complex values we have to must use this classes to make our work easy.
            taskitem["Assigned To"] = _user;
            taskitem.Update();
            return taskitem;
        }


        static void CreateTaskassign(SPWeb _web)
        {
            SPRoleDefinition _def = new SPRoleDefinition();
            _def.Name = "task asign users";
            _def.Description = "can't delete this items";
              //bit wise or to create the base permission.
            _def.BasePermissions = SPBasePermissions.ViewListItems |
                SPBasePermissions.EditListItems |
                SPBasePermissions.Open | SPBasePermissions.ViewPages;
// add the permission to the web.
            _web.RoleDefinitions.Add(_def);  
        }

        static void setpermission(SPListItem _item)
        {
              // set the role permission to item level.

            SPWeb _web = _item.Web;
             
              // we have to break the inheritance to give the unique permission to the items or any other list.
           
            _item.BreakRoleInheritance(false);

              // reverse back the item using following constructor of the SPFieldUserValue
            SPFieldUserValue taskwebOwener = new SPFieldUserValue(_web, (string)_item["Assigned To"]);
             
             
            SPRoleAssignment assign = new SPRoleAssignment(taskwebOwener.User); // can be user or can be group
            assign.RoleDefinitionBindings.Add(_web.RoleDefinitions["task asign users"]);

            _item.RoleAssignments.Add(assign);
        }



Popular posts from this blog

SharePoint RPC Protocols Examples Using OWSSVR.DLL

SharePoint 2016 JavaScript framework

STS CryptographicException Error : Key set does not exist