2010-01-21 9 views
3

J'essaie actuellement de comprendre comment mieux mettre en œuvre un côté administration pour mon application.asp.net sitemap admin voir ce qu'un utilisateur voit

J'ai un site utilisateur, où les utilisateurs peuvent se connecter, personnaliser leur profil, soumettre des informations, etc. Je voudrais que les utilisateurs de l'administration puissent se connecter et pouvoir choisir parmi une liste d'utilisateurs. De là, l'administrateur peut soumettre des informations pour l'utilisateur, tout comme l'utilisateur peut.

Website Start Page > RogerRabbit > Submit Information 
Website Start Page > BillyBob > Customize Profile 

Ma question est:

  1. Comment mes pages doivent être disposées?
  2. À quoi doit ressembler le fichier Web.sitemap? Existe-t-il une façon agréable de créer un sitemap (peut-être en mémoire?)
  3. Cette méthode doit-elle utiliser des variables de session?

Toutes les suggestions, ou des conseils seraient grands.

Répondre

1

Je ne peux pas répondre à votre question sitemap mais j'ai implémenté une solution comme celle-ci sur un de nos systèmes où je peux voir exactement ce que l'utilisateur final voit en se faisant passer pour lui. Je l'ai fait principalement à des fins de dépannage afin que quand ils me signalent un problème (comme quelque chose qui manque à leur vue), je peux entrer en eux et voir exactement de quoi ils parlent. La façon dont j'ai fait cela, qui est certes un peu grossière, était d'avoir une table d'emprunt d'identité dans ma base de données qui contient le nom de connexion de l'utilisateur qui fait l'emprunt d'identité et l'ouverture de session de l'utilisateur qu'il souhaite emprunter. J'ai ajouté un code de remplacement de sorte que lorsque l'utilisateur accède à la page (il utilise l'authentification Windows), il vérifie si cet utilisateur a un jeu d'emprunt d'identité dans la table, puis place cet identifiant dans un objet dans l'état de la session. S'il n'y avait pas d'emprunt d'identité, il placerait l'id utilisateur réel dans ce même objet. Pour éviter que les données de l'utilisateur ne fassent autant de choses, il y a deux propriétés dans cet objet, une pour logon_name, qui est utilisée par le système pour la personnalisation de contenu, et une autre nommée NameForLog, qui est utilisée lors de la journalisation des actions. Toutes les actions que je fais seront enregistrées comme moi. Toutes les zones du site qui affichent du contenu personnalisé par l'utilisateur examinent cet objet de session, de sorte qu'elles utilisent toujours l'ID avec emprunt d'identité et par conséquent me montrent toujours ce que l'utilisateur voit. Au-delà de la première page et du code d'enregistrement, il ne sait même pas que c'est à moi qu'il s'agit.

Ce n'est pas la solution la plus propre, mais cela a bien fonctionné pour moi.

1

Je ne sais pas mike ... c'est un large éventail de questions là-bas. Un peu comme demander "comment je construis un site web dans asp.net".

Il semble que vous ayez besoin d'investir dans un livre d'introduction intitulé «how-to asp.net» qui couvre ces sujets. Les bonnes nouvelles sont que presque chaque débutant à intermédiaire asp.net livre jamais écrit frappe probablement la plupart de ces domaines.

souhaite que les utilisateurs d'administration puissent se connecter et pouvoir choisir parmi une liste d'utilisateurs. De là, l'administrateur peut soumettre des informations pour l'utilisateur, tout comme l'utilisateur peut.

Ceci est une sorte d'usurpation d'identité ... et est beaucoup plus difficile que ça en al'air. Mais la façon dont vous le faites dépend de la façon dont votre application authentifie les utilisateurs, autorise les utilisateurs et gère les rôles ... ce qui est une sous-spécialité dans asp.net (avec ses propres livres dédiés).

1) Comment mes pages doivent-elles être disposées?

Soigneusement?

2) Comment devrait ressembler le fichier Web.sitemap? Existe-t-il une manière agréable de créer un sitemap (peut-être en mémoire?)

Ceci est couvert par MSDN quite thouroughly. Oui, vous pouvez créer vos sitemaps en mémoire. J'ai créé des sitemaps à partir de données stockées dans une base de données SQL à quelques reprises dans le passé, mais je ne sais pas où même commencer à l'expliquer. Vous devez comprendre les classes de base et les interfaces utilisées par les sitemaps, puis créer un fournisseur de sitemap personnalisé adapté à l'utilisation de vos données et de vos règles pour la structure du site.

3) Cette méthode devrait-elle utiliser des variables de session?

Probablement. La plupart des sites qui connaissent «l'utilisateur connecté» ont besoin de sessions. Pas universellement vrai, mais presque ainsi.