Url routing

hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014 - 20 août 2010 à 22:10
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 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


Merci beaucoup


Nicolas!

9 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
21 août 2010 à 10:09
Salut,

Tu peux utiliser les QueryString :

Par exemple il suffit de créer une page dans le répertoire voulue

http://www.monsite.com/users/user.aspx

En suite, il faut ajouter la requête en fin de page.

http://www.monsite.com/users/user.aspx?user=nicolas

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.
0
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014
23 août 2010 à 14:48
Merci pour la réponse mais c'est justement ce que nous voulons éviter! Il nous faut absolument un url facile à distribuer.
Nicolas!
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
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.
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
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.

4. Le navigateur ne voit pas la différence.

Quelques liens instructifs :
Tapez le texte de l'url ici.
Tapez le texte de l'url ici. [en] (la partie sur IIS n'est plus à jour vis à vis de IIS 7)

A+
Nurgle
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
26 août 2010 à 13:56
Arf désolé, petit échec avec la description des liens, mais les liens sont bons.
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
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.
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
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.

Bref ça tous les avantages.

Bonne journée,
Nurgle (Antoine)
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
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.
0
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014
31 août 2010 à 17:24
J'ai déjà fait quelque test avec le url rewriting et j'avais du mal a le faire fonctionner avec des url sans extension du genre monsite.com/nicolas

de plus j'avais des problème d'url lors de postback... ya t'il d'autre solutions ?

Nicolas!
0
Rejoignez-nous