1: static void Main(string[] args)
2: {
3: string strSiteCollectionUrl, strADGroupName;
4:
5: Console.WriteLine("Enter Site Collection Url: (Press Enter after entering the url)");
6: strSiteCollectionUrl = Console.ReadLine();
7:
8:
9: Console.WriteLine("Enter Friendly AD Group Name: (Press Enter after entering the Name)");
10: strADGroupName = Console.ReadLine();
11:
12: List<UserInfo> userList = new List<UserInfo>();
13: userList = PopulateUserInfoFromADGroup(strADGroupName);
14:
15: SPSite site = new SPSite(strSiteCollectionUrl);
16: SPWeb web = site.OpenWeb();
17:
18: SPGroup AddUserGroup;
19: //Check if Group Exists
20:
21:
22: foreach (UserInfo user in userList)
23: {
24: SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions;
25: SPRoleAssignmentCollection roleAssignments = web.RoleAssignments;
26: SPRoleAssignment roleAssignment = new SPRoleAssignment(user.DomainName + "\\" + user.userLoginName, user.UserEmail, user.USerName, "");
27: SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;
28: roleDefBindings.Add(roleDefinitions.GetByType(SPRoleType.Contributor));
29: roleAssignments.Add(roleAssignment);
30: SPUser newUser = web.SiteUsers[user.DomainName + "\\" + user.userLoginName];
31: try
32: {
33: AddUserGroup = web.SiteGroups[strADGroupName];
34: }
35: catch
36: {
37: web.SiteGroups.Add(strADGroupName,newUser,newUser,"");
38: }
39: AddUserGroup = web.SiteGroups[strADGroupName];
40: AddUserGroup.AddUser(user.DomainName + "\\" + user.userLoginName, user.UserEmail, user.USerName, "");
41: }
42:
43: }
44:
45: /// <summary>
46: /// Class with User details
47: /// </summary>
48: public class UserInfo
49: {
50: private string _userLoginName;
51:
52: public string userLoginName
53: {
54: get { return _userLoginName; }
55: set { _userLoginName = value; }
56: }
57:
58: private string _userName;
59:
60: public string USerName
61: {
62: get { return _userName; }
63: set { _userName = value; }
64: }
65:
66: private string _userEmail;
67:
68: public string UserEmail
69: {
70: get { return _userEmail; }
71: set { _userEmail = value; }
72: }
73:
74: private string _domainName;
75:
76: public string DomainName
77: {
78: get { return _domainName; }
79: set { _domainName = value; }
80: }
81:
82:
83:
84: }