2013-07-31 22 views
2
using (SPSite oSite = new SPSite(SPContext.Current.Site.Url)) 
     { 
      foreach (SPWeb oWeb in oSite.RootWeb.GetSubwebsForCurrentUser()) 
      { 
       permission = string.Empty; 
       foreach (SPGroup group in oWeb.Groups) 
       { 
        foreach (SPUser u in group.Users) 
        { 
         if (u.Name == (userName)) 
         { 
          foreach (SPRole role in u.Roles) 
          { 
           permission += role.Name.ToString() + ", "; 
          } 
                 } 
        } // Taking All Permission details of user 
       } 
       permission = " [" + permission.TrimEnd(", ".ToCharArray()) + "]"; 

} }的SharePoint C#獲取列表上的用戶有權限(如讀取,貢獻訪問者)

我的最後一個字符串變量有像[讀取,遊客]或[閱讀]值或[遊客,讀取]

我想對所有u.Roles名稱的權限,實際上我得到錯誤/警告[角色,現在是絕對的],

幫我用SPRoleDefination等 獲得許可SPRoleDefinitionCollectionrol eDefinitions = oWeb.RoleDefinitions; SPRoleDefinitionroleDefinition

感謝 普利文

+0

指定錯誤/警告消息請。 – detailCode

回答

0

嘗試了這一點

foreach (SPWeb oWeb in oSite.RootWeb.GetSubwebsForCurrentUser()) 
      { 

       SPRoleDefinitionCollection oCollection= oWeb.RoleDefinitions; 

       foreach (SPRoleDefinition r in oCollection) 
       { 
        SPRoleDefinition roleDef = oCollection[r.Name.ToString()]; 

        foreach (SPRoleAssignment oAssigment in oWeb.RoleAssignments) 
        { 
         if (oAssigment.RoleDefinitionBindings.Contains(roleDef)) 
         { 
          permissions+= r.Name.ToString(); 
         } 
        } 

       } 
+0

謝謝,我解決了可以參考下面的博客: http://praveenpandit.blogspot.in/2013/08/sharepoint-get-all-permission-and-list.html – Praveen

相關問題