最近遇到个需求,要对moss2007中的文档进行加密解密保护,具体需求是上传解密下载时加密(具体原因不做解释)。接到这样的需求第一反应肯定是用EventHandler来解决,实际上EventHandler是无法做到的(无法获取下载事件),在网上找了很多资料都没能直接解决问题。通过实验找到了解决问题的办法具体如下:

1.首先找到事件,就是上传的事件和下载的事件:

上传:修改upload.aspx页面,重写上传事件。重写要注意一些问题:

首先新建个类继承Microsoft.SharePoint.ApplicationPages.UploadPage,具体如何写上传的代码要参考Microsoft.SharePoint.ApplicationPages.dll中的写法(用Reflector反编译)

public class MyUpload : Microsoft.SharePoint.ApplicationPages.UploadPage
    {
        protected void MyOnSubmit(object o, EventArgs e)
        {
            if (!this.MultipleUploadMode)
            {
                this.Page.Validate();
                if (!this.Page.IsValid)
                {
                    return;
                }
                SPContentTypeId empty = SPContentTypeId.Empty;
                SPFile spfile = this.UploadFile();
                if (spfile == null)
                {
                    return;
                }
                if (((spfile.CheckOutStatus != SPFile.SPCheckOutStatus.None)) && (spfile.Item != null))
                {
                    SPUtility.Redirect(this.GetEditFormUrl(spfile), SPRedirectFlags.Default, this.Context);
                    return;
                }
            }
            else
            {
                SPUtility.Redirect(this.RedirectUrl, SPRedirectFlags.UseSource | SPRedirectFlags.Static, this.Context);
                return;
            }
            SPUtility.Redirect(this.RedirectUrl, SPRedirectFlags.UseSource | SPRedirectFlags.Static, this.Context);

        }
}

 接下来要修改Upload.aspx页面:

<%@ Assembly Name="Sinopec.Moss.CustomUploadPage, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1e537c5b8c721ccf"%>  //添加刚才写类
<%@ Page Language="C#" Inherits="Sinopec.Moss.CustomUploadPage.MyUpload" MasterPageFile="~/_layouts/application.master"      %>//修改引用

还要修改上传事件名:

 <INPUT />
  

这样上传已经完成,下一篇文章将介绍如何控制下载事件。

 

 

 

努力过就不会后悔

相关文章:

  • 2021-05-31
  • 2022-12-23
  • 2021-06-08
  • 2022-12-23
  • 2022-12-23
  • 2021-05-28
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-19
  • 2022-12-23
相关资源
相似解决方案