⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auditlogviewer.aspx

📁 这是一个在SHAREPOINT上开发的一个审核日记的源代码
💻 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 + -