0210: SP User
1.Obtaining and Displaying Users of a Site
SPSite site = new SPSite(siteUrl);   
SPWeb web = site.AllWebs[webName];
foreach (SPGroup group in web.SiteGroups)   
{    
// Step 4: Get list of all users in this    
// and add to data table    
foreach (SPUser user in group.Users)    
{    
foreach (SPRole role in SPUser.Roles)    
{
2.Adding Users to a Site by Using the Object Model
//Step 3a: Get handle to specified site collection and web site   
SPSite site = new SPSite(args[0]);    
SPWeb web = site.AllWebs[args[1]];    
//Step 3b: Add the user to the specified site group    
web.SiteGroups[args[6]].AddUser(args[
3. Adding Users and Groups to a Site by Using the   
Web Services
http://[SharePoint server]/_vti_bin/UserGroup.asmx
UserGroupService.UserGroup objUserGroup =   
new UserGroupService.UserGroup();
4.Adding Groups to a Site by Using the Object Model
SPSite site = new SPSite(args[0]);   
SPWeb web = site.AllWebs[args[1]];
web.SiteGroups.Add(args[2], web.SiteUsers[args[   
web.SiteUsers[args[4]], args[5]);
5.Adding Roles to a Web Site by Using the Object   
Mode
SPSite site = new SPSite(r.SiteUr);   
SPWeb web = site.AllWebs[r.WebName];    
web.AllowUnsafeUpdates = true;
SPRoleDefinitionCollection roles = web.RoleDefinitions;   
//Step 4: Create a new role using information passed in    
SPRoleDefinition role = new SPRoleDefinition();
…
roles.Add(role)
6.Adding Roles to a Web Site by Using the Web Services
http://[server name]/_vti_bin/usergroup.asmx
UserGroupService.UserGroup objUserGroup =   
new UserGroupService.UserGroup();
//Get permissionflag by rolename
// Step 1: Default to NO permissions   
ulong permissionFlags = (ulong)SPBasePermissions.EmptyMask;    
// Step 2: Get list of all current roles for this web site    
XmlNode xnRoles = objUserGroup.GetRoleCollectionFromWeb();    
// Step 3: Even though we're using the web service to update    
// the roles collection, we can use the built-in enum    
// type to get the numeric values of the various base    
// permissions.    
SPBasePermissions enumBasePermissions =    
new SPBasePermissions();    
string[] arrBasePermissionNames =    
System.Enum.GetNames(enumBasePermissions.GetType());    
ulong[] arrBasePermissionValues =    
(ulong[])System.Enum.GetValues(enumBasePermissions.GetType());    
// Step 4: Loop through all current roles in target site    
// finding the role for which we want to duplicate permission    
// flags.
foreach (XmlNode xnRole in xnRoles.FirstChild.ChildNodes)   
{    
if (xnRole.Attributes["Name"].Value.ToString().ToLower()    
== strRoleName.ToLower())    
{    
// Turn the comma-delimited list of base permission    
// names into an array so we can iterate through them    
string[] arrPermission =    
xnRole.Attributes["BasePermissions"].Value.ToString().Split(',');    
// Iterate through the complete list of base permissions to    
// find the entry that matches the base permission    
// from our template role    
for (int i = 0; i < arrPermission.Length; i++)    
for (int j = 0; j < arrBasePermissionNames.Length; j++)    
// When we've found our base permission, "OR" its    
// numeric value with that of any other base    
// permissions to create the complete set of values    
if (arrPermission[i].Trim() ==    
arrBasePermissionNames[j])    
permissionFlags = permissionFlags |    
arrBasePermissionValues[j];    
}    
}    
return permissionFlags;    
}
//Add role
objUserGroup.AddRoleDef(txtRoleName.Text,   
txtRoleDefinition.Text, permissionFlags);
7.Adding Users to Active Directory with a created web service
public class Service : System.Web.Services.WebService   
{    
    //The LDAP connection string needs to match the domain you'll     
    //be adding users to. For example, the below connection string     
    //applies to a domain called 'test.domain', and will save new     
    //user accounts in the 'NewUsers' organizational unit folder.     
    const string LDAP_CONNECTION_STRING = "LDAP://OU=NewUsers,DC=test,DC=domain";     
    //AD sets account flags by "AND'ing" together various numeric     
    //values stored in HEX. The following are the base-10     
    //integer representations of the HEX values for the flags we     
    //want to set.     
    const int AD_ENABLED = 512;     
    const int AD_DISABLED = 514;     
    const int AD_NEVER_EXPIRE = 65536;     
    [WebMethod()]     
    public DataTable AddUserToAD(string strAlias, string strName, string strCompany, string strEmail, string strPhone, string strNotes)     
    {     
        string strMsg = "";     
        //Step 1: Verify that alias was provided     
        if (strAlias == "") {     
            strMsg = strMsg + "Valid user alias required";     
        }     
        else {     
            //Step 2: Instantiate a Directory Entry Object to represent the "Extranet" folder     
            DirectoryEntry adUserFolder = new DirectoryEntry(LDAP_CONNECTION_STRING);     
            DirectoryEntry newADUser = new DirectoryEntry();     
            DirectoryEntry existingADUser = new DirectoryEntry();     
            //Step 3: Check to make sure the folder is a "organizational unit" object     
            try {     
                if (adUserFolder.SchemaEntry.Name == "organizationalUnit") {     
                    //Create a directory entry to represent the new user     
                    newADUser = adUserFolder.Children.Add("CN=" + strAlias, "User");     
                    //If already a user with this alias, set the fields to data for     
                    //this user and return message     
                    if (DirectoryEntry.Exists(newADUser.Path)) {     
                        existingADUser = adUserFolder.Children.Find("CN=" + strAlias, "User");     
                        strName = (string)existingADUser.Properties["displayName"].Value;    
                        strCompany = (string)existingADUser.Properties["company"].Value;    
                        strNotes = (string)existingADUser.Properties["mail"].Value;    
                        strPhone = (string)existingADUser.Properties["telephoneNumber"].Value;    
                        strNotes = (string)existingADUser.Properties["comment"].Value;     
                        strMsg = "User '" + strAlias + "' already exists in Active Directory";     
                    }     
                    else {     
                        //Step 4: Save caller-supplied properties     
                        newADUser.Properties["sAMAccountName"].Add(strAlias + "");     
                        newADUser.Properties["displayName"].Add(strName + "");     
                        newADUser.Properties["company"].Add(strCompany + "");     
                        newADUser.Properties["mail"].Add(strEmail + "");     
                        newADUser.Properties["telephoneNumber"].Add(strPhone + "");     
                        newADUser.Properties["comment"].Add(strNotes + "");     
                        newADUser.Properties["info"].Value = "New SharePoint User";     
                        newADUser.CommitChanges();     
                        //Step 5: Set the password using the "Invoke" method.     
                        newADUser.Invoke("setPassword", "P@ssW0rd");     
                        //Step 6: Enable the user, set account to never expire     
                        newADUser.Properties["userAccountControl"].Value = AD_NEVER_EXPIRE + AD_ENABLED;     
                        newADUser.CommitChanges();     
                        strMsg = "User '" + strAlias + "' successfully added to Active Directory";     
                    }     
                }     
            }     
            catch (Exception ex) {     
                //Step 7: return error message    
                strMsg = "User '" + strName + "' could not be added to Active Directory due to the following error: " + ex.Message;     
            }     
        }     
        //Step 8: Construct a dataset to return values     
        DataTable dtReturn = new DataTable("result");     
        dtReturn.Columns.Add("Alias");     
        dtReturn.Columns.Add("Name");     
        dtReturn.Columns.Add("Company");     
        dtReturn.Columns.Add("Phone");     
        dtReturn.Columns.Add("Email");     
        dtReturn.Columns.Add("Notes");     
        dtReturn.Columns.Add("Message");     
        //Add a single row to the data table to contain     
        //information describing the results of the method call     
        DataRow drReturn = dtReturn.NewRow();     
        drReturn["Alias"] = strAlias;     
        drReturn["Name"] = strName;     
        drReturn["Company"] = strCompany;     
        drReturn["Phone"] = strPhone;     
        drReturn["Email"] = strEmail;     
        drReturn["Notes"] = strNotes;     
        drReturn["Message"] = strMsg;     
        dtReturn.Rows.Add(drReturn);     
        dtReturn.AcceptChanges();     
        return dtReturn.Copy();     
    }     
}
 -->

0 Comments:
Post a Comment
<< Home