2010-05-24 61 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 ),因爲如果沒有找到組,總是會拋出異常。
  • 相關問題