IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Changement de UserName en cours de route


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Changement de UserName en cours de route
    Bonjour

    Je viens de mettre au point un petit formulaire qui va modifier les informations du profil de mon visiteur.

    Entre autres choses je permet de modifier la colonne UserName de la table aspnet_Users, champ qui sert à l'identification et qui se retrouve dans la propriété Profile.UserName. Cette dernière est ReadOnly.

    Alors je me pose la question de savoir comment je pourrais metre à jour cette propriété sans obligé le visiteur à se déconnecter / Reconnecter.

    Sans vouloir être désobligeant, je vous épargne les remarques sur l'aspect sécuritaire de la chose, modifier le login n'est pas trés heureux, mais bon, c'est les instructions, j'ai débattu longuement du sujet avec le commenditaire et il a presque fini par m'envoyer bouler, me rappellant que c'est lui qui signera le chèque à la fin ! ! !

    Autrement dit : il m'a brisé les noix avec ça donc pas la peine de sauter sur les morceaux !

    Merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Membership.GetUser().Username est également ReadOnly?

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Oui, aussi ReadOnly

    Du coup, je suis vraiment ennuyé parce que faudrait que je force une Déco/Reco. C'est la seul solution que je vois.

    Je me demande si le MemberShip ne cahrge pas toute cette histoire en Session, mais seulement accessible par lui, genre il est pas partageur parce que sa maman lui a mal appris quand il était petit.

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Non, merci, le peu que j'ai pu comprendre de ce langage de barbare dénué de finesse (l'anglais) est qu'il détruit pour recontruire.
    Bilan : je lui conseille (à OMAR) d'arrêter de lire NIETSCHE, y a un moment où ça monte au cerveau.

    Par contre, j'ai un poil avancé et je me retrouve face à un bug caché, le petit coquin.

    En fait j'ai l'illusion que le Profile ne se mets pas à jour, c'est plutôt le Context qui n'est pas à jour. J'explique, parce que là, je n'ai pas de solution (enfin pour l'instant) et j'ai aussi un peu de mal à compendre.

    Donc dans ma procédure de mise à jour du profil je lance des tratiements, je récupère des donéne, j'envoi le tout à une Proc Stock et ça fait la rue Michel. Juste aprés la Proc Stock je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HttpContext.Current.Profile.Initialize(strUserName, True)
    strUserName c'est le contenu du champ une fois la modificaiton ud UserName faite par le Visiteur.
    Le True sert à dire qu'il est authentifié.

    La suite de la Procédure boucle sur la page et revient sur le formualire prés à faire une autre modif ou aller sur une autre page avec le menu.
    Sauf que, pour recharger le formulaire je me sers d'une petite Fonction de ma mouture que j'ai logé dans une classe externe pour récupérer dynamiquement le UserId. Et vu que c'est dnas une classe externe, ben je p)asse par le Context, peut être par bien, mais jusque là, ça donne les résultat que j'attends.

    Voici ma Fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Shared Function GetUserGUID() As Guid
    	'Fonction de récupération du GUID de l'utilisateur courant
    	Dim CurContext As HttpContext = System.Web.HttpContext.Current
    	If CurContext.Profile.IsAnonymous Then
    		Dim g As New Guid("00000000-0000-0000-0000-000000000002")
    		GetUserGUID = g
    	Else
    		GetUserGUID = New DManager("DataDev").RetournerTable("SELECT U.UserId FROM aspnet_Users U WHERE U.LoweredUserName = LOWER('" & CurContext.Profile.UserName & "') AND ApplicationId = '" & GetApplicationGUID().ToString & "'").Rows(0).Item(0)
    	End If
    End Function
    Vu que je me sert à fond des GUID, je renvoi un GUID normalisé lorsque le Visiteur est Anonyme et comme ça je gère mes droits d'accès; Mais le problème n'est pas là.
    Visiblement, le Profile est bien à jour, j'ai extrais des donnée jsute à la fin de ma procédure et ça donne bien le bon UserName, par contre, le Context ici (la variable CurContext) elle n'est pas à jour.

    Ce que je ne trouve pas, aprce que j'ai déjà une vague idée de ce qu'il se passe, c'est comment lui dire d'aller cherche une Context tout propre, tout neuf.

    Je pense que vu que je ne fais pas un New sur le HttpContext, ben il prend un vieux truc qui traine.
    Mais je ne trouve pas les arguments pour faire un New.

    Je me demande si je suis bien clair ?

Discussions similaires

  1. [Cairo] Changement de couleur en cours de route
    Par eric1708 dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 25/04/2014, 14h46
  2. Réponses: 4
    Dernier message: 21/05/2006, 18h55
  3. [PHPLIB] Faire appel à un fichier template de plus en cours de route
    Par zulot dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 01/04/2006, 11h38
  4. [t-sql] changer de BD en cours de route
    Par olivc dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/06/2005, 11h06
  5. Rajouter un Field à un TTable en cours de route
    Par gandf dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/02/2005, 23h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo