Meilleure pratique pour autoriser tous les utilisateurs pour une seule page


1

Quel est le meilleur moyen d'autoriser tous les utilisateurs à une seule page dans un site Web asp.net? À l'exception de la page de connexion et d'une autre page, je refuse à tous les utilisateurs de voir les pages du site Web.

Comment rendre cette page accessible à tous les utilisateurs?

5

J'ai utilisé l'authentification par formulaire et créé les objets GenericIdentity et CustomPrincipal nécessaires pour utiliser les fonctions de type User.IsInRole que vous obtenez généralement avec l'authentification Windows.

De cette façon, dans mon fichier web.config, je peux faire des choses comme ...

<location path="Login.aspx"> 
    <system.web> 
     <authorization> 
     <allow users ="*" /> 
     </authorization> 
    </system.web> 
</location> 

<location path="ManagementFolder"> 
    <system.web> 
     <authorization> 
     <allow roles ="Administrator, Manager" /> 
     </authorization> 
    </system.web> 
</location> 

-1

J'ai créé une classe de base « page » qui gère ce genre de chose. Toutes mes pages peuvent ensuite être décorées avec l'attribut RequiresLogin si une connexion est requise pour les afficher. Si l'attribut n'est pas présent, la page est accessible à tous.

Exemple:

<RequiresLogin()> _ 
<RequiresPermission("process")> _ 
Partial Class DesignReviewEditProgressPage 
    Inherits MyPage 'which inherits System.Web.UI.Page and deal with logins itself 

    ... 
End Class 

Les contrôles de classe MyPage quels attributs sont étiquetés de manière à lui-même et si RequiresLogin est présent, il vous renvoie vers une page de connexion.

Je crois que cela pourrait être adapté à votre propre problème.

+2

Les gens qui downvote devraient être obligés d'écrire la raison !! 25 sept.. 092009-09-25 23:37:07