hudon77
Messages postés127Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention29 mai 2014
-
20 août 2010 à 22:10
hudon77
Messages postés127Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention29 mai 2014
-
31 août 2010 à 17:24
Bonjour à tous!
J'aimerais donner un url unique a chacun de mes usagers pour qu'ils accèdes à leur espace personnel.
monsite.com/nicolas
J'aimerais savoir quel approche utilisé.
j'ai testé avec le url rewrite mais ca ne repond pas a mes attente.
Le tout doit fonctionner sous IIS 6 et le framework 3.5
Dans le code behind de ta page aspx, il suffit en suite de mettre le code suivant:
Dim MyUser As String = Request.QueryString("user")
string MyUser = Request.QueryString("user");
Pour récupérer le nom de l'utilisateur dans une variable, il te reste plus en suite qu'a faire une requête dans ta base de données pour récupérer les infos et les afficher. Il faut aussi, bien penser à contrôler si l'utilisateur logué correspond à la page sinon moi aussi en saisissant l'adresse, je pourrais avoir accès aux infos de tes utilisateurs.
@+
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 23 août 2010 à 15:50
OK, je vois ^^
C'est tout à fait possible, par exemple ce forum crée une page par topique et n'utilise pas de QueryString (Surement pour le référencement d'ailleurs).
Donc le mieux que tu puisses faire, c'est de créer une page nommé Default.aspx avec les champs relatifs aux infos de l'espace utilisateur, une fois ceci fait, lors de la création d'un compte il faudra :
Créer dynamiquement un nouveau dossier avec le nom d'utilisateur (Attention, lors de la création du compte, bien refuser tous les noms d'utilisateurs qui ne respectent pas les conventions du système de fichier).
Copier la page 'Default.aspx' Dans le répertoire nouvellement créé.
Par la suite cette page devra décomposer l'url et retrouver son répertoire parent qui correspond au nom de l'utilisateur au chargement.
Elle devra effectuer une requête vers la base de données pour aller y chercher des infos. (Si c'est une page qui doit être visible que par l'utilisateur concerné, vérifier si le nom d'utilisateur correspond à celui de la personne logué).
Voila en gros, ca fait pas mal de boulot, mais de cette façon c'est jouable.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 26 août 2010 à 13:53
Bonjour,
Mayzz, ce n'est pas du tout la bonne façon de faire, en fait c'est même la pire : elle viole la 1ère règle de sécurité d'une application ASP.NET, Pas de création dynamique de page au sein d'une même application.
Il y a une méthode beaucoup plus simple et universellement utilisée, appelée URL Rewriting.
C'est ce qui est utilisé sur CodeS-SourceS par exemple.
Le concept est simple :
1. Le site utilise des adresses "simples" vers des pages qui en réalité n'existent pas, ex. www.monsite.com/users/nurgle ou forum.monsite.com/sujet-URL-ROUTING_1462588.aspx
2. Quand une de ces pages est demandé, le moteur ASP.NET les renvoie vers un HttpHandler qui doit gérer cette requête. (soit le handler standard d'ASP.NET, soit un custom)
3. Le Handler convertit l'url avant que la requête ne soit traitée, par exemple avec des Regular Expressions, en la vrai url, ex. www.monsite.com/users.aspx?user=nurgle ou forum.monsite.com/sujet.aspx?id=1462588, et ensuite la requête est traitée normalement.
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 26 août 2010 à 15:20
Désolé, d'avoir dit des bêtises, je n'utilise pas ce principe, en fait c'était plus une idée qu'une méthode, jamais testé d'ailleurs, je ne pensait même pas que cela provoquerai un problème de sécurité.
En tous cas merci pour ces infos, qui vont m'être utile aussi =)
J'ai juste une petite question: sur C-S, à quoi sert-il d'avoir mis en place ce système?
Merci.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 26 août 2010 à 16:30
Cela sert principalement au référencement, c'est l'avantage principal : on peut mettre des données dynamiques complexes dans l'URL, comme par exemple le sujet d'un article/post/...
C'est beaucoup plus parlant qu'un nom de page fixe suivi d'une série de chiffres, pour le référencement comme pour les visiteurs.
Accessoirement, si un jour tu refais ton site, tu changes de technologie, tu changes le nom d'une page, etc. c'est transparent pour l'utilisateur comme pour les moteurs : ils ne voient que les URLs "propres".
Du coup, pas de liens brisés.
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 26 août 2010 à 16:58
Merci bien pour toutes ces infos, cela répond justement à toutes les questions que je me posais, sans vraiment avoir pris le temps de rechercher les réponse, mais tôt ou tard j'aurais du y passer !
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.