Tuesday, August 30, 2011

Create URL Redirection upon Event Errors


File->New->Project->SharePoint 2010->Empty Project->CustomErrorPage
CustomErrorPage->Add->New Item->SharePoint 2010->Event Receiver->MaxSubSitesReceiver
EventReceiverType->Web Events
Handle Events When->site is being provisioned
//MaxSubSitesReceiver->MaxSubSitesReceiver.cs
using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;

namespace CustomErrorPage.MaxSubSitesReceiver
{  
    public class MaxSubSitesReceiver : SPWebEventReceiver
    {
       public override void WebAdding(SPWebEventProperties properties)
       {
           if (properties.Web.Webs.Count >= 2)
           {
               properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
               properties.Cancel = true;
               properties.RedirectUrl = "/_layouts/CustomErrorPage/SiteCreationError.aspx";
           }
       }
    }
}
----------------------------------------------------------------------------------------
CustomErrorPage->Add->SharePoint "Layouts" Mapped Folder
Layouts->CustomErroPage->Add Item->New Item->SharePoint 2010->Application Page->SiteCreationError.aspx

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SiteCreationError.aspx.cs" Inherits="CustomErrorPage.Layouts.CustomErrorPage.SiteCreationError" DynamicMasterPageFile="~masterurl/default.master" %>
<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
</asp:Content>
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<p>
  ERROR: You can only have a maximum of two (2) subsites in the current site.
</p>
</asp:Content>
<asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
  ERROR: Maximum Subsites in Current Site Exceeded
</asp:Content>
<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >
ERROR: Maximum Subsites in Current Site Exceeded
</asp:Content>
 

No comments:

Post a Comment

Featured Post

Protect an API by using OAuth 2.0 with Azure Active Directory and API Management

Protect an API by using OAuth 2.0 with Azure Active Directory and API Management https://docs.microsoft.com/en-us/azure/api-management/api-...

Popular posts