Domanda

o c'è un servizio incorporato SP2010 per accedere ai dati di audit?

[Aggiorna] Quick Awnser, no, non c'è modo di accedere alla spaumitquery dalla Biblioteca di classe SP JavaScript SP.

Alla fine finisco per usare un servizio WCF, utilizzando tutte le indicazioni fornite da @ALMmosharePointmaster, tirando la spaumitquery da JavaScript, non dimenticare di elevare il contesto quando interroga da un servizio WCF

using (ElevatedContext context = new ElevatedContext(SPContext.Current.Web, SPContext.Current.Site))
{
    context.Execute(delegate
    {
        SPList spList = context.Web.Lists[yourListId];
        SPListItem spItem = spList.GetItemById(yourItemId);

        SPAuditQuery auditQuery = new SPAuditQuery(context.Site);
        auditQuery.RestrictToListItem(spItem);

        SPAuditEntryCollection auditEntries = context.Site.Audit.GetEntries(auditQuery);

     });   
}

return auditEntries;
.

È stato utile?

Soluzione

è spiegato incondipo qui con immagini come usare spaudot;)

http://www.codeproject .com / articoli / 431342 / Auditing-A-integrato-feature-of-SharePoint

SpAudit e i suoi membri

http://msdn.microsoft.com/en -US / Biblioteca / microsoft.sharepoint.Spaudit.aspx

Membri

http://msdn.microsoft.com/en -UR / Biblioteca / Microsoft.SharePoint.Spaudit_members.aspx

Questo è preso da MSDN che mostra come accedere al registro,

SPAuditQuery wssQuery = new SPAuditQuery(siteCollection);
wssQuery.RestrictToListItem(item);
SPAuditEntryCollection auditCol = site.Audit.GetEntries(wssQuery);

foreach (SPAuditEntry entry in auditCol) {
  // get info from audit log
}
.

Questo è stato preso da un altro thread pubblicato di seguito:

SPAuditQuery wssQuery = new SPAuditQuery(web.Site);
wssQuery.RestrictToUser(web.CurrentUser.ID);
wssQuery.AddEventRestriction(SPAuditEventType.View);
wssQuery.RestrictToList(SPContext.Current.List);

SPAuditEntryCollection auditCol;
auditCol = web.Site.Audit.GetEntries(wssQuery);
.

https: / /stackoverflow.com/questions/5158411/how-could-aget-access-to-the-audit-log-for-non-admin-Sers

Potresti anche usare:

 SPAuditQuery wssQuery = 
  new SPAuditQuery(SPContext.Current.Site);
.

Si prega di notare che si imbatteranno in alcuni restrizioni con Amdmin Destra! Poiché gli stati dell'ultimo collegamento afferma, prendono nella conduzione, la stament di sotto di MSDN particolarmente l'ultima parte;)

La mia soluzione alla restrizione è usare SPSecurity.RunwithElevatedPrivileges come un piccolo lavoro intorno :)

.

L'ambito fondamentale di qualsiasi query è sempre una raccolta di siti; ma Puoi usare i membri della classe per limitare una query in particolare Date range, utenti, tipi di eventi, elenchi e elementi dell'elenco.

Questa classe viene utilizzata principalmente come parametro al Metodo getentries (spauditquery).

Non è possibile utilizzare questa classe per interrogare il database di SharePoint per qualsiasi cosa diversa dalle registrazioni degli eventi controllati.

SpautitQuery Class

http://msdn.microsoft.com/en -US / biblioteca / microsoft.sharepoint.spauditquery.aspx

Modifica

Se si desidera utilizzare un server Web è possibile seguire l'esempio, tutto ciò che devi fare è avere questo codice:

SPSite oSiteCollection = (SPSite)properties.Feature.Parent;
SPAuditQuery oAuditQuery = new SPAuditQuery(oSiteCollection);
oAuditQuery.RestrictToListItem(item);
SPAuditEntryCollection collAuditEntries = oSiteCollection.Audit.GetEntries(oAuditQuery);

foreach (SPAuditEntry oAuditEntry in collAuditEntries) {
  // get info from audit log
}
.

Ovviamente ha un metodo di ritorno che restituisce i risultati :)

http://msdn.microsoft.com/en-us/library /ms457256.aspx

Spero che aiuti :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top