2009-09-04 11 views
5

現在のユーザーがsharepoint Webサイトの一部のグループに所属している場合、プログラムでどのように調べることができますか?
1つのグループに所属するユーザーに異なるコンテンツを表示したいからです。Sharepoint:現在のユーザーが指定されたグループに属しているかどうかを調べる

+0

のSharePoint APIやWebサービスを使用していますか? –

+1

質問は既にここで尋ねられました>> http://stackoverflow.com/questions/1063931/sharepoint-check-if-a-user-is-member-of-a-group – Flo

答えて

11

私は(IMHO)まったく同じ質問をしているので私はあなたの投稿につまずいたが、回答は何とかそれに一致しないようだ。だから私は探しに行き、http://www.eggheadcafe.com/conversation.aspx?messageid=30460140&threadid=30420861が見つかりました:2013年

SPWeb site = SPContext.Current.Web; 
SPGroup managerGroup = site.Groups["SP_Project_Manager"]; 
bool isManager = site.IsCurrentUserMemberOfGroup(managerGroup); 

、s654mさんのコメントによると、署名が変更されているようだ:

bool isManager = site.IsCurrentUserMemberOfGroup(managerGroup.ID); 
+0

これは、2013年のWebパーツでは動作しません。 ..これがしかし: SPWeb site = SPContext.Current.Web; SPGroup managerGroup = site.Groups ["SP_Project_Manager"]; bool isManager = site.IsCurrentUserMemberOfGroup(managerGroup.ID); – s654m

+0

@ s654m - 通知ありがとう、私は私の答えにそれを組み込んだ。 – chiccodoro

+0

奇妙なことに、私のアカウントは正しいですし、私の管理グループに属していますが、 'site.IsCurrentUserMemberOfGroup(7)'によって返されるブール値は常にfalseです。したがって、それは良いidであり、私は現在のユーザーを表示しました、それも良いです。何かヒント? – Alex

3

多分このcode sample posがASP.NETフォーラムに役立ちます。あなたは

/// <summary> 
/// This private method get users by selected SPGroup object. 
/// </summary> 
/// <param name="group">SPGroup object</param> 

private void UsersList(SPGroup group) 
{ 
      foreach(SPUser singleUser in group.Users) 
      { 
         foreach(SPRole singleRole in singleUser.Roles) 
         { 
            _usersListCollection.Add(new UserListCollection(
            singleUser.LoginName,singleRole.Name,group.ParentWeb.Title)); 
         } 
      } 
} 

幸運、
ヘンリク

0

を使用することができます

方法の問題のようなものをアプローチする一つの方法は、CodePlexにでインスピレーションを見つけることです。人々がリリースしたコードの品質は、通常とても良いです。

私はあなたがここで解決策を見つけることができると確信している:あなたはそれが可能に、「観客」機能を見てかかることがありますMOSSをインストールしている場合http://accesschecker.codeplex.com/

0

はちょっとそこに、私は、SharePoint

に取り組みますあなたはコードなしで異なる人々をターゲットにすることができます。

関連する問題