2010-05-24 106 views
0

执行该代码段如何对Active Directory用户添加到SharePoint组

 SPSecurity.RunWithElevatedPrivileges(delegate() 
    { 
      using (SPSite site = new SPSite(siteUrl.Trim())) 
      { 
       using (SPWeb web = site.OpenWeb()) 
       { 
        try 
        { 
         web.AllowUnsafeUpdates = true; 
         SPUser spUser = web.AllUsers[userName]; 


         if (spUser != null) 
         { 
          SPGroup spGroup = web.Groups[groupName]; 
          if (spGroup != null) 
           spGroup.AddUser(spUser); 
         } 
        } 
        catch (Exception ex) 
        { 
         this.TraceData(LogLevel.Error, "Error at function Named    [AddUserToSPGroupWidget.AddUserToGroup] . With Error Message: " + ex.ToString()); 

        } 
        finally 
        { 
         web.AllowUnsafeUpdates = false; 
        } 
       } 
      } 
      }); 

时,请指导我我得到了一个例外。提前致谢。

回答

2

我不知道你的确切异常是什么,但你可以尝试做如下改变:

  1. 而不是

    SPUser spUser = web.AllUsers [用户名]。

使用(这样可保证用户所在的网络上)

SPUser spUser = web.EnsureUser(userName); 
  • 相反

    SPGroup spGroup = web.Groups的[组名]。

  • 使用(组集合只包含在当前子网络上定义的组)

    SPGroup spGroup = web.SiteGroups[groupName]; 
    
  • 没有必要检查(spGroup!= NULL ),因为如果没有找到组,总是会抛出异常。
  • 相关问题