WebProvisioned事件是SharePoint 2010新增加的事件处理器,可以在Web创建之后发生的事件同步或步事件,在中文版的SharePoint环境中, WebProvisioned事件叫做“已配置网站”事件。可以在 Elements.xml文件中设置同步(Synchronous)或异步( Asynchronous)。
在VS2010开发环境中可以直接创建基于Web网站的WebProvisioned事件,如图1所示:
图1
在图1中选择“Web事件”接收器,此时“事件源”是不让选择的,因为此事件只有对Web网站有作用,所以无需选择网站模板,只要是创建的网站都会触发此事件。在图1的“处理以下事件”下拉列表框中选择“已配置网站”,点击“完成”按钮即可创建WebProvisioned事件处理器。
为了更好的了解SharePoint 2010事件处理器WebProvisioned重载方法的每个参数的作用,所以将WebProvisioned事件中的每个属性值写入Windows日志,这样可以清楚的看到当WebProvisioned事件触发后每个参数属性值,C#代码如下:
- using System;
- using System.Security.Permissions;
- using Microsoft.SharePoint;
- using Microsoft.SharePoint.Security;
- using Microsoft.SharePoint.Utilities;
- using Microsoft.SharePoint.Workflow;
- using System.Diagnostics;
- using System.Text;
- namespace WebProvisionedEventReceiver.EventReceiver1
- {
- /// <summary>
- /// Web 事件
- /// </summary>
- public class EventReceiver1 : SPWebEventReceiver
- {
- /// <summary>
- /// 已配置网站.
- /// </summary>
- public override void WebProvisioned(SPWebEventProperties properties)
- {
- this.LogWebEventProperties(properties);
- base.WebProvisioned(properties);
- }
- /// <summary>
- /// Web事件日志
- /// </summary>
- /// <param name="properties"></param>
- private void LogWebEventProperties(SPWebEventProperties properties)
- {
- StringBuilder sB = new StringBuilder();
- try
- {
- sB.AppendFormat("{0} at {1}\n\n", properties.EventType, DateTime.Now);
- sB.AppendFormat("Cancel:{0}\n", properties.Cancel);
- sB.AppendFormat("ErrorMessage:{0}\n", properties.ErrorMessage);
- sB.AppendFormat("EventType:{0}\n", properties.EventType);
- sB.AppendFormat("FullUrl:{0}\n", properties.FullUrl);
- sB.AppendFormat("NewServerRelativeUrl:{0}\n", properties.NewServerRelativeUrl);
- sB.AppendFormat("ParentWebId:{0}\n", properties.ParentWebId);
- sB.AppendFormat("ReceiverData:{0}\n", properties.ReceiverData);
- sB.AppendFormat("RedirectUrl:{0}\n", properties.RedirectUrl);
- sB.AppendFormat("ServerRelativerUrl:{0}\n", properties.ServerRelativeUrl);
- sB.AppendFormat("SiteId:{0}\n", properties.SiteId);
- sB.AppendFormat("Status:{0}\n", properties.Status);
- sB.AppendFormat("UserDisplayName:{0}\n", properties.UserDisplayName);
- sB.AppendFormat("UserLoginName:{0}\n", properties.UserLoginName);
- sB.AppendFormat("Web:{0}\n", properties.Web.Title);
- sB.AppendFormat("WebId:{0}\n", properties.WebId);
- }
- catch (Exception ex)
- {
- sB.AppendFormat("Exception:{0}\n", ex.Message);
- }
- string source = "WebEventCustomLog";
- string logName = "Application";
- if (!EventLog.SourceExists(source))
- {
- EventLog.CreateEventSource(source, logName);
- }
- try
- {
- EventLog.WriteEntry(source, sB.ToString());
- }
- catch { }
- }
- }
- }
运行结果请查看原文:http://www.360sps.com/item/0d2ff85690f540a69d32072f46488299.aspx
转载于:https://blog.51cto.com/360sps/974960