Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Kype's blog

Technical and technological issues around Microsoft's products
[SharePoint] Créer une page AccessDenied.aspx custom

L'objectif de ce post est de proposer une démarche pour customiser la page d'Access Denied de SharePoint. Ce type de besoin peut se pésenter lorsqu'on applique une charte spécifique à un site ou que tout simplement, on souhaite modifier le message présenté par défaut à l'utilisateur :

image

Problématique :

  • La page AccesDenied.aspx standard se trouve dans le répertoire LAYOUTS : se pose donc la question de modifier des pages standards qui pourraient être la cible de mises à jour...
  • Le chemin de la page utilisé par SharePoint est une constante défini au niveau de SPUtility.AccessDeniedPage

Solution :

La KB 944105 fournit 2 solutions pour modifier les pages du LAYOUTS.

Nous allons partir sur la solution 2 qui permet de répondre à la 1ère problématique en travaillant à partir d'une copie de la page AccessDenied.aspx et en laissant la page standard intacte.

Dans mon cas, il s'agit uniquement d'appliquer une master page différente et de modifier quelque peu le message renvoyé. Je garde donc les éléments de la page standard en la complétant et en cachant les contrôles dont je n'ai pas besoin. Libre à vous de repartir d'une page vierge.

 

Pour répondre à la 2ème problématique (utilisation de la page custom), j'utilise un HTTP Handler qui redirige vers ma page AccessDeniedCustom.aspx en conservant la QueryString.

Voici donc le code du Handler :

using System;
using System.Web;
using Microsoft.SharePoint; 

namespace Kype.SharePoint.Pages
{
  public class AccessDeniedHandler : IHttpHandler
  {
    public bool IsReusable
    {
      get { return true; }
    }

  public void ProcessRequest(HttpContext context)
  {    
    Uri uri = context.Request.Url;
    string url = uri.AbsoluteUri;
    string urlRedirect = url.Replace("AccessDenied.aspx",
"custom/AccessDeniedCustom.aspx"); context.Response.Redirect(urlRedirect);
  }
}

Et la structure du projet :

image

Côté déploiement, la page est mise dans un sous-répertoire de "LAYOUTS" et la dll du handler dans le GAC, ceci peut être fait via une solution SharePoint (avec WSPBuilder par exemple). Le fichier web.config du répertoire LAYOUTS doit également être complété pour utiliser le handler en ajoutant :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="AccessDenied.aspx*" type="Type, Assembly, Version=[version],
       Culture=[culture], PublicKeyToken=[PublicKeyToken]"
/> </httpHandlers> </system.web> </configuration>

Ceci se fait manuellement pour l'instant, mais fera l'objet d'un post prochainement pour voir comment l'automatiser.
 

Limites liées à l'application d'un Service Pack :

  • La page standard sera mise à jour, mais pas notre page custom
  • Le web.config peut être mis à jour et donc conflit potentiel avec notre entrée
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: lundi 23 mars 2009 21:47 par Kype
Classé sous : ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Les actualités de la semaine sur c2i.fr (14 mai - 20 mai) par Richard Clark le il y a 4 heures et 46 minutes

- Reactive Extensions : Consommer des services avec Rx Partie 3, les pièges à éviter par Léonard Labat le il y a 13 heures et 51 minutes

- SharePoint Blog Site, problème d’archives par Le Blog (Vert) d'Arnaud JUND le 05-20-2012, 13:09

- Soirée ALT.NET Mai - 3 présentations par #Rui le 05-18-2012, 11:59

- [ #SharePoint 2010][ #SQLServer 2012] AlwaysOn pour SharePoint (2/4) : Configuration (2e partie)… par Le blog de Patrick [MVP SharePoint] le 05-18-2012, 11:31

- Team Foundation Server 11: tous les trésors cachés du site d’équipe par Philess le 05-16-2012, 19:01

- [PowerShell 3] Télécharger et installer la documentation en ligne par Blog de SPBrouillet (Pierrick BROUILLET) le 05-16-2012, 17:36

- [#SharePoint 2010][#SQLServer 2012] AlwaysOn pour SharePoint (1/4) : Configuration (1ère partie)… par Le blog de Patrick [MVP SharePoint] le 05-16-2012, 12:10

- Job Day @MIC Brussels - .Net Developers on Mobile applications par Le Blog (Vert) d'Arnaud JUND le 05-15-2012, 20:26

- [SharePoint 2010] – SharePoint 2010, Windows (Server) 8 et des erreurs IIS sont dans une VM… par Blog de SPBrouillet (Pierrick BROUILLET) le 05-14-2012, 12:10