📄 auditlogviewer.aspx
字号:
<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Assembly Name="ItemAuditing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7fd3ed697555604d" %>
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Security" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="ItemAuditing" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<script runat="server">
protected override bool RequireSiteAdministrator {
get { return true; }
}
protected override void OnLoad(EventArgs e) {
SPSite siteColl = SPContext.Current.Site;
SPWeb site = SPContext.Current.Web;
SPAuditQuery wssQuery = new SPAuditQuery(siteColl);
SPAuditEntryCollection auditCol = siteColl.Audit.GetEntries(wssQuery);
cmdGenerateWorkbook.Attributes["onclick"] = "location.replace('" + site.Url + "/_layouts/AuditLog.ashx" + "');";
DataTable table = new DataTable();
table.Columns.Add("User", typeof(string));
table.Columns.Add("DocLocation", typeof(string));
table.Columns.Add("ItemType", typeof(string));
table.Columns.Add("ItemId", typeof(string));
table.Columns.Add("Occurred", typeof(DateTime));
table.Columns.Add("Event", typeof(string));
DataRow newRow;
foreach (SPAuditEntry entry in auditCol) {
newRow = table.Rows.Add();
newRow["User"] = GetUserNameById(entry.UserId, site);
newRow["DocLocation"] = entry.DocLocation;
newRow["ItemType"] = entry.ItemType.ToString();
newRow["ItemId"] = entry.ItemId.ToString();
newRow["Occurred"] = entry.Occurred.ToLocalTime();
newRow["Event"] = ConvertEventToLocal(entry.Event);
}
SPBoundField boundField = new SPBoundField();
boundField.HeaderText = "用户";
boundField.DataField = "User";
SPGridView1.Columns.Add(boundField);
boundField = new SPBoundField();
boundField.HeaderText = "文档位置";
boundField.DataField = "DocLocation";
SPGridView1.Columns.Add(boundField);
boundField = new SPBoundField();
boundField.HeaderText = "项目类型";
boundField.DataField = "ItemType";
SPGridView1.Columns.Add(boundField);
boundField = new SPBoundField();
boundField.HeaderText = "项目编号";
boundField.DataField = "ItemId";
SPGridView1.Columns.Add(boundField);
boundField = new SPBoundField();
boundField.HeaderText = "发生时间";
boundField.DataField = "Occurred";
boundField.ControlStyle.Width = new Unit(120);
SPGridView1.Columns.Add(boundField);
boundField = new SPBoundField();
boundField.HeaderText = "事件";
boundField.DataField = "Event";
SPGridView1.Columns.Add(boundField);
SPGridView1.AutoGenerateColumns = false;
SPGridView1.DataSource = table.DefaultView;
SPGridView1.DataBind();
SPGridView1.AllowSorting = true;
SPGridView1.HeaderStyle.Font.Bold = true;
}
protected string GetUserNameById(int UserId, SPWeb site) {
try {
return site.SiteUsers.GetByID(UserId).Name;
//return site.Users.GetByID(UserId).Name; - YOU CANNOT USE SPWeb.Users collection here
}
catch {
return UserId.ToString();
}
}
protected void cmdDeleteAllEntires_Click(object sender, EventArgs e) {
SPSite siteColl = SPContext.Current.Site;
siteColl.Audit.DeleteEntries(DateTime.Now.ToLocalTime().AddDays(1));
siteColl.Audit.Update();
Response.Redirect(Request.RawUrl);
}
protected void cmdRefreshPage_Click(object sender, EventArgs e) {
Response.Redirect(Request.RawUrl);
}
protected void cmdExportToExcel_Click(object sender, EventArgs e)
{
}
protected String ConvertEventToLocal(SPAuditEventType Event)
{
string operate = String.Empty;
switch (Event)
{
case SPAuditEventType.AuditMaskChange: //A change in the types of events that are audited for the object.
operate = "更改事件类型[审核]";
break;
case SPAuditEventType.CheckIn: //Check-in of the object.
operate = "签入";
break;
case SPAuditEventType.CheckOut: //Check-out of the object.
operate = "签出";
break;
case SPAuditEventType.ChildDelete: //Deletion of one of the child objects of the object.
operate = "子项目删除";
break;
case SPAuditEventType.ChildMove: //Move of one of the child objects of the object.
operate = "子项目移动";
break;
case SPAuditEventType.Copy: //Copying of the object.
operate = "复制";
break;
case SPAuditEventType.Custom: //Custom action or event.
operate = "自定义";
break;
case SPAuditEventType.Delete: //Deletion of the object.
operate = "删除";
break;
case SPAuditEventType.EventsDeleted: //Deletion of audited events that are connected with the object from the SharePoint database.
operate = "清除审核日志";
break;
case SPAuditEventType.Move: //Move of the object.
operate = "移动";
break;
case SPAuditEventType.ProfileChange: //Change in a profile that is associated with the object.
operate = "个性化更改";
break;
case SPAuditEventType.SchemaChange: //Change in the schema of the object.
operate = "架构更改";
break;
case SPAuditEventType.Search: //Search on the object.
operate = "搜索";
break;
case SPAuditEventType.SecGroupCreate: //Creation of a user group for a SharePoint site collection.
operate = "用户组创建[网站集]";
break;
case SPAuditEventType.SecGroupDelete: //Deletion of a group that is associated with a SharePoint site collection.
operate = "用户组删除[网站集]";
break;
case SPAuditEventType.SecGroupMemberAdd: //Addition of a new member to a group that is associated with a SharePoint site collection.
operate = "添加用户[网站集]";
break;
case SPAuditEventType.SecGroupMemberDel: //Deletion of a member from a group that is associated with a SharePoint site collection.
operate = "删除用户[网站集]";
break;
case SPAuditEventType.SecRoleBindBreakInherit: //Turning off inheritance of security settings from the parent of the object.
operate = "不从父级继承权限";
break;
case SPAuditEventType.SecRoleBindInherit: //Turning on inheritance of security settings from the parent of the object.
operate = "从父级继承权限";
break;
case SPAuditEventType.SecRoleBindUpdate: //Changing the permissions of a user or group for the object.
operate = "更改用户(组)权限";
break;
case SPAuditEventType.SecRoleDefBreakInherit: //Turning off inheritance of role (that is, permission level) definitions from the parent of the object.
operate = "停止从父级继承权限级别";
break;
case SPAuditEventType.SecRoleDefCreate://Creation of a new role (that is, permission level) definition associated with the object.
operate = "添加权限级别";
break;
case SPAuditEventType.SecRoleDefDelete: //Removal of a role (that is, permission level) definition associated with the object.
operate = "移除权限级别";
break;
case SPAuditEventType.SecRoleDefModify: //Changing a role (that is, permission level) definition associated with an object.
operate = "更改权限级别";
break;
case SPAuditEventType.Undelete: //Restoration of an object from the Recycle Bin.
operate = "从回收站还原";
break;
case SPAuditEventType.Update: //Changing the properties of an object or creating an object.
operate = "更改对象属性或创建对象";
break;
case SPAuditEventType.View: //Viewing of the object by a user.
operate = "查看";
break;
case SPAuditEventType.Workflow:
operate = "工作流";
break;
default:
operate = "未知操作";
break;
}
return operate;
}
</script>
<asp:Content ID="Content6" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<asp:Button ID="cmdRefreshPage" runat="server" Text="刷新页面" OnClick="cmdRefreshPage_Click" />
<asp:Button ID="cmdDeleteAllEntires" runat="server" Text="清除审核日志" OnClick="cmdDeleteAllEntires_Click" />
<input type="button" runat="server" id="cmdGenerateWorkbook" value="导出审核日志[Excel]"/>
<hr />
<SharePoint:SPGridView ID="SPGridView1" runat="server" AutoGenerateColumns="False"
Width="100%">
<AlternatingRowStyle CssClass="ms-alternating" />
</SharePoint:SPGridView>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
审计日志浏览器
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea"
runat="server">
查看审计日志
</asp:Content>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -