2010-06-22 3 views
2

J'ai donné la permission particulière pour l'utilisateur particulier. Seul ce menu sera activé quelle permission est définie pour cet utilisateur.Securtiy Alors que la navigation dans ASP.NET

J'ai deux problèmes ....

1) élément de menu doit être invisible plutôt que de désactiver

2) Si l'utilisateur copie le nom de la page où il n'a pas accès et peut l'ouvrir ..

Suggérer une .... (urgent)

+1

Quelle authentification utilisez-vous? Formes? Les fenêtres? Rôles d'adhésion à Asp.net? –

+0

Quelque chose de similaire à la réponse de Muhammad sera correct, mais vous devez vraiment fournir le balisage asp. Net pour le menu afin que nous puissions déterminer à quoi fournir une solution. –

Répondre

0

vous pouvez gérer la sécurité du menu à l'aide ASP.NET Site-Map Security Trimming mais si vous voulez éviter les utilisations d'accéder à la page par l'URL que vous pouvez utiliser mettre inro votre fichier web.config comme:

<location path="securedAdministrationPage.aspx"> 
    <system.web> 
    <authorization> 
     <deny users="*" /> 
     <allow users="*" roles="Admins"/> 
    </authorization> 
    </system.web> 
</location> 

ce lien vous aidera http://wiki.asp.net/page.aspx/653/aspnet-webconfig--location-and-authroization-tags/

1

vous pouvez ajouter ceci dans la page charge

if (!HttpContext.Current.User.IsInRole("YourRole")) 
     { 
      Response.Redirect("~/AccessDenied.aspx"); 
     } 
+0

merci ... pour la réponse, Mais je suis simple en utilisant ma propre authentification en utilisant le nom d'utilisateur et mot de passe qui sont stockés sur ma base de données. Aussi pour donner la permission, lors de la création de l'utilisateur, je donne la permission pour le lien en cochant la case à laquelle l'utilisateur peut accéder tout en chargeant l'utilisateur de même que je cheching la permission donnée à cet utilisateur. Je veux juste définir l'autorisation pour l'utilisateur dynamiquement et charger l'autorisation de l'utilisateur (que l'utilisateur peut visiter). Si vous avez une autre solution, svp suggérez ... Merci – usr021986

0

Vous devriez regarder dans l'élément <location> dans la section <system.web> de web.config. Là, vous pouvez définir des règles d'accès aussi simple que

<authorization> 
    <allow roles="Admin" /> <!--allows access to admins--> 
    <deny users="*" /> <!-- denies access to any other users --> 
</authorization> 

Plus d'info here

+0

Cela empêchera les utilisateurs d'accéder aux pages, mais ne donnera pas accès aux permissions sur un contrôle de menu. De la question initiale, il semble qu'il essaie de cacher une branche du menu en fonction des autorisations de connexion de l'utilisateur. –

+0

@Brian, En fait, s'il utilise le contrôle '' et définit son menu dans un fichier 'web.sitemap', ces règles * s'appliqueront. –

+0

merci ... pour la réponse, Mais je suis simple en utilisant ma propre authentification en utilisant le nom d'utilisateur et mot de passe qui stocké sur ma base de données. Aussi pour donner la permission, lors de la création de l'utilisateur, je donne la permission pour le lien en cochant la case à laquelle l'utilisateur peut accéder tout en chargeant l'utilisateur de même que je cheching la permission donnée à cet utilisateur. Je veux juste définir l'autorisation pour l'utilisateur dynamiquement et charger l'autorisation de l'utilisateur (que l'utilisateur peut visiter). Si vous avez une autre solution, svp suggérez ... Merci – usr021986

0

Je suggère de mettre votre navigation dans un contrôle utilisateur, puis d'utiliser une instruction switch ou autre, ainsi que la section location dans le webconfig. Dans l'instruction switch, vous pouvez ensuite utiliser les attributs 'Visible' pour masquer les liens de nav (assurez-vous qu'ils ont un runat = "server") des utilisateurs qui n'ont pas l'autorisation d'afficher certaines pages, en fonction de leur rôle (si vous utilisez l'appartenance à asp.net)

+0

merci ... pour la réponse, Mais je suis simple en utilisant ma propre authentification en utilisant le nom d'utilisateur et mot de passe qui sont stockés sur ma base de données. Aussi pour donner la permission, lors de la création de l'utilisateur, je donne la permission pour le lien en cochant la case à laquelle l'utilisateur peut accéder tout en chargeant l'utilisateur de même que je cheching la permission donnée à cet utilisateur. Je veux juste définir l'autorisation pour l'utilisateur dynamiquement et charger l'autorisation de l'utilisateur (que l'utilisateur peut visiter). Si vous avez une autre solution, veuillez suggérer ... Merci – usr021986

Questions connexes