Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Jean-Christophe Brabant

SharePoint, HTML5, UX,PowerShell, ...
[SharePoint 2010] Supprimer la redirection automatique d’un “access denied”

Comment SharePoint gère les access denied ?

Par défaut SharePoint gère les problèmes d’accès en redirigeant automatiquement les utilisateurs vers une page en particulier : http://{site}/_layouts/AccessDenied.aspx

AccessDenied

Modifier ce comportement ?

Nous pourrions vouloir, cependant, réagir d’une manière différente et personnalisée à un “access denied”.

La propriété qui gère ce système est celle de la classe SPSecurity : CatchAccessDeniedException.

Une fois la propriété à true, nous pourrons catcher l’exception : “UnauthorizedAccessException

Je vous propose 3 manières différentes pour manipuler cette propriété :

- Manipulation directe de la classe SPSecurity

Voici un exemple de manipulation :

SPSite site = SPContext.Current.Site;
SPSecurity.CatchAccessDeniedException = true;
try
{
    // Code here
}
catch (UnauthorizedAccessException exception)
{
    // code here
    throw;
}
finally
{
    SPSecurity.CatchAccessDeniedException = false;
}

Attention cependant avec cette propriété. Il faut penser à la repasser à false, une fois notre traitement de l’exception effectué. Il faut aussi prendre garde aux exceptions qui pourraient être lancée dans le code, qui empêcherait de remettre la propriété à false.

- La propriété CatchAccessDeniedException de l’objet SPSite

C’est une propriété est une manière plus rapide d’accéder à celle de la classe SPSecurity. Elle se manipule exactement de la même manière que cette précédente.

SPSite site = SPContext.Current.Site;
site.CatchAccessDeniedException = true;
try
{
    // Code here
}
catch (UnauthorizedAccessException exception)
{
    // code here
    throw;
}
finally
{
    site.CatchAccessDeniedException = false;
}

Attention cependant avec cette propriété. Il faut penser à la repasser à false, une fois notre traitement de l’exception effectué. Il faut aussi prendre garde aux exceptions qui pourraient être lancée dans le code, qui empêcherait de remettre la propriété à false.

- La méthode SuppressAccessDeniedRedirectInScope

La méthode la plus intéressante ici, est la méthode statique SuppressAccessDeniedRedirectInScope() de la classe SPSecurity.

Cette méthode, va créer un contexte dans lequel la propriété citée plus haut :SPSecurity.CatchAccessDeniedException sera à true tout au long de son utilisation.
Cette propriété sera remise dans le même état qu’à l’entrée dans le contexte.

L’avantage de cette méthode est qu’il n’est plus nécessaire de gérer tous les cas possible pour remettre la propriété dans son état précédent une fois notre traitement terminé.

Pour l’utiliser, rien de plus simple :

using (new SPSecurity.SuppressAccessDeniedRedirectInScope())
{
    try
    {
        // Code here
    }
    catch (UnauthorizedAccessException ex)
    {
        // code here
    }
}
Vous savez tout maintenant pour réaliser des traitements lors de la levée d’une exception Access Denied.

Jicay

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 11 juin 2012 09:00 par Lauzange

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01