2013-01-10 5 views
0

J'ai un intérieur page.aspx, et j'ai créé un rôle appelé Premium. Je veux que tous les utilisateurs puissent voir page.aspx, mais seuls les utilisateurs Premium peuvent voir la div.Comment rendre un div accessible seulement pour les utilisateurs authentifiés

Mon web.condig

<location path="?"> 
<system.web> 
    <authorization> 
     <allow roles="Premium" /> 
     <deny users="*" /> 
    </authorization> 
</system.web> 

je ne sais pas maintenant comment l'écrire utilisateurs afin que la prime de rôle peut voir le

+2

Quand vous dites div, vous voulez dire une partie de votre page avec 'gondolé div' - correct? – Aristos

+0

Vous devriez lire quelques notions de base sur l'authentification, l'autorisation, la validation (dans WebServer/Controllers/Code-Behind) et le filtrage de sécurité (dans les fichiers aspx, etc.), et pourquoi vous devriez les utiliser tous en même temps. – TGlatzer

Répondre

5

La façon la plus simple est d'utiliser un if instruction pour contrôler la sortie de cette partie de la page:

<% if(User.IsInRole("Premium")) { %> 
<div> blah </div> 
<% } %> 

Ld, bien sûr, fait un UserControl ou similaire qui contient cette logique à la place, poussant ainsi l'expression conditionnelle hors de la page hôte et ayant la page simplement rendre le contrôle toujours.

0

Vous pouvez faire de la section Premium une vue partielle qui a sa propre méthode dans le contrôleur, pour laquelle vous pourriez avoir besoin du rôle Premium.

+1

Le terme "vue partielle" est une chose MVC, vraiment - et la question apparaît (basée sur le peu d'informations disponibles!) Pour être une question de webforms. –

0

dans votre page.aspx, procédez comme suit:

<%if (Request.IsAuthenticated){ %> 
    <%if HttpContext.Current.User.IsInRole("premium"){ %> 
     <div>premium content</div> 
    <%} %> 
<%}%> 
Questions connexes