0

ユーザーが sharepoint 2010 ドキュメント センターのドキュメントを読んだかどうかを追跡したいのですが、現在、ユーザー情報は監査ログに保存されていません。それを行う方法はありますか?

4

2 に答える 2

0

監査ログに保存されます。その特定のドキュメント ライブラリの監査を有効にしてから、次のコードを使用して詳細を取得します。

SPSite oSPsite = new SPSite
SPList doclib= oSPWeb.Lists["doclib"];
SPWeb oSPWeb = oSPsite.OpenWeb()
SPListItemCollection doclibitems= doclib.Items; 
foreach (SPListItem odoclibItem in doclibitems)
                        { 
odoclibItem .Audit.AuditFlags = SPAuditMaskType.View;
                        //    odoclibItem .Audit.AuditFlags = SPAuditMaskType
                            SPAuditQuery oquery = new SPAuditQuery(oSPsite);
                            oquery.RestrictToListItem(odoclibItem );
                            odoclibItem .Audit.Update();                        
                            SPAuditEntryCollection oAuditEntryCollection =SPsite.Audit.GetEntries(oquery);
                            foreach (SPAuditEntry entry in oAuditEntryCollection)
                            {
     if (entry.Event == SPAuditEventType.View)
    {
    id = Convert.ToString(entry.UserId);
     // get the user name and other details here
     }
   }
       }
于 2013-07-10T12:10:22.530 に答える