2010-03-02 5 views
0

J'ai un site Web qui montre des informations à tous les utilisateurs, mais si vous êtes connecté, vous avez accès à plus d'informations et de pages, puis l'utilisateur non ouvert. Puis-je utiliser certaines variables de session et les inclure dans chacune des pages? Quelle est la meilleure façon de le faire.Verrouiller certaines pages et laisser d'autres ouvertes

En outre, quelle est la meilleure façon de rendre l'utilisateur rester connecté, en quelque sorte "Remember me" case à cocher. Enregistrer un cookie sur HDD?

+0

Je ne voudrais pas l'enregistrer dans une session, de cette façon quelqu'un pourrait manipuler une session et juste changer cette variable pour obtenir plus de droits. Vous pouvez créer un champ de privilège dans votre DB utilisateur et un pour chaque page. De cette façon, vous serez en mesure de gérer chaque page pour chaque utilisateur et vous êtes en mesure de gérer des tonnes de privilèges d'utilisateur différents. Vous pourriez envisager d'utiliser des groupes d'utilisateurs, le principe serait le même. Il manque encore un peu de sécurité mais de mon point de vue un peu mieux. –

+1

Vous supposez que l'utilisateur a accès aux variables de session - il ne le fait pas. Ce que l'attaquant malveillant peut faire est de changer le cookie qui pointe vers la session, pour détourner les paramètres de l'utilisateur. Il ne peut toujours pas accéder aux variables de session, autres que celles fournies par le concepteur de pages Web. – dar7yl

Répondre

0

Pour répondre à votre première question. Le chemin le plus facile à suivre est d'avoir derrière votre code quelque chose qui active ou désactive l'indicateur visible de certains contrôles en fonction de quelque chose que vous avez sauvegardé en session.

Cela peut devenir complexe rapidement, donc je voudrais jouer un peu avec lui et comprendre ce qui fonctionne le mieux avec vos règles d'affaires.

Pour répondre à votre deuxième question. Vous devriez enregistrer quelque chose dans un cookie statique que vous pourrez référencer plus tard. Personnellement, j'aime enregistrer un GUID dans leur cookie, dont j'enregistre une copie dans une base de données locale. Quand quelqu'un re-visite le site, je cherche ce cookie. Si le GUID est présent et correspond à celui stocké pour quelqu'un dans ma base de données, je les connecte automatiquement.

0

Je recommanderais d'utiliser l'adhésion ASP.NET. Il a un contrôle de connexion avec une fonction "se souvenir de moi". Vous pouvez également restreindre l'accès aux pages via le fichier web.config.

Ceci est une bonne série d'articles sur le sujet: http://www.4guysfromrolla.com/articles/062508-1.aspx

0

vous avez probablement besoin de mettre en œuvre le mécanisme d'autorisation pour votre application

Voici intégré dans l'infrastructure fournie par Asp.Net

pour la deuxième question, la meilleure façon est de utiliser des cookies. un coup d'oeil à ce tutoriel

0

L'adhésion et l'authentification est l'un des besoins fondamentaux de chaque application web et entre tous disposent que NET Framework a fourni, ASP.NET est l'un des membres du plus grand que la plupart des développeurs l'ont fondé utile. Si vous voulez vous pouvez implémenter votre propre Autorisation et authentification Mais recommandé d'utiliser Authentication and Authorization in ASP.NET

Questions connexes