4

私は実際にSharePointグループの変更について通知を受け取る方法を探しています。まず、イベントハンドラーをある種のグループリストに添付することでこれを行うことができます。ただし、残念ながら、SharePointグループを表すそのようなリストはありません。

2番目の試みは、イベントハンドラーをコンテンツタイプSharePointGroupにバインドすることでしたが、これも機能しませんでした。

では、SharePointグループのイベントに関する通知を受け取る他のオプションはありますか?

編集:

これまでの返信ありがとうございます。

私はすでにグーグルでユーザー情報リストについて読んだことを忘れました。ごめん。

最初に、相対URLをユーザー情報リスト(_catalogs / users / simple.aspx)に投稿するフォーラムエントリを見つけました。このリンクを使用してリストを表示すると、ユーザーのみが含まれ、グループは含まれません。わかりませんが、おそらくこのリンクはリストのフィルタリングを行います。

いくつかのブログやフォーラムの投稿で私が見つけた他の情報は、ユーザー情報リストに添付されたイベントハンドラーがイベントで起動されないということでした。読んだ後、それはあまり機能しないことを認めなければなりません。MSDN(http://msdn.microsoft.com/en-us/library/aa979520.aspx)でも、自分で試したことはありません。 。

イベントハンドラーをコンテンツタイプにアタッチする際の問題は、アタッチすることではありませんでした。たとえば、グループ名を変更したり、グループからユーザーを削除したりしたときに、ハンドラーが起動されませんでした。ハンドラーが呼び出されない理由がわかりません。適切なメソッドを実装し、それらを適切なイベントにアタッチしたことは間違いありません。

SharePointグループの変更について通知を受ける方法に関する他の提案はありますか?

4

3 に答える 3

2

グループの追加またはグループからの削除にイベントハンドラーがないことは、私がGoogleを使用して見つけた最善の回避策を持っていないことは本当に迷惑です!監査をオンにすることです。

次に、定期的に監査をループして、イベントを発生させます。

            wssQuery = new SPAuditQuery(site);
            wssQuery.AddEventRestriction(SPAuditEventType.SecGroupMemberAdd);
            wssQuery.AddEventRestriction(SPAuditEventType.SecGroupMemberDel);
            wssQuery.SetRangeStart(startTime.AddMinutes(-16));
            auditCol = site.Audit.GetEntries(wssQuery);




            foreach (SPAuditEntry entry in auditCol)
            {
                    xml.LoadXml("<event>" + entry.EventData + "</event>");

                    int userId = Int32.Parse(xml.SelectSingleNode("/event/user").InnerText);
                    int groupId = Int32.Parse(xml.SelectSingleNode("/event/groupid").InnerText);

                    if (entry.Event == SPAuditEventType.SecGroupMemberAdd)
                    {
                       // Do Stuff
                    }

                    if (entry.Event == SPAuditEventType.SecGroupMemberDel)
                    {
                        // Do Stuff
                    }


             }

ただし、メンバーがグループに追加されてからイベントが発生するまでに深刻な遅延が発生します。

監査でもイベントハンドラーが見つからなかったため、唯一のオプションはループスルーのようです。

何百ものサイトコレクションがあるので、これは私にとって高価です!

于 2010-05-10T17:10:51.163 に答える
1

SharePoint グループにそのようなリストがないというのはどういうことですか? ユーザーと SharePoint グループの両方が存在するユーザー情報リストがあります。そこにイベント レシーバーをアタッチして、項目をフィルター処理できます。たとえば、0x010b である SharePoint グループのコンテンツ タイプ ID でフィルター処理できます。

また、イベント レシーバーを SharePoint グループにアタッチすることも可能です。何がうまくいかなかったのですか?

.b

于 2008-11-17T17:12:43.530 に答える
0

残念ながら、「UserInformation リスト タイプではリスト イベントは発生しません。」参照: http://msdn.microsoft.com/en-us/library/aa979520.aspx またはここでの議論: http://social.msdn.microsoft.com/Forums/en-US/ea2e06fb-63e1-4096- 843c-413ddf33f24b/how-to-add-event-receivers-for-spgroup-in-sharepoint

ただし、SP 2013 の場合の解決策があります: http://www.c-sharpcorner.com/UploadFile/anavijai/create-groupuseradded-event-receiver-in-sharepoint-2013/

于 2014-07-10T05:42:41.007 に答える