12
votes

Obtenir le courant d'utilisateur à partir de Websebily directement après la connexion (C # / ASP.NET)

J'ai ce site Web (C # / ASP.NET) avec un formulaire dans lequel l'utilisateur peut s'inscrire pour un compte (il s'agit du modèle par défaut de VS11) et une fois que tout est rempli et que l'utilisateur clique pour s'inscrire, il crée le compte et journaux dans l'utilisateur (qui fonctionne bien).

Après cette étape, je veux obtenir l'ID utilisateur qu'il a été attribué, mais cela ne fonctionne pas. J'ai mis un point d'arrêt là-bas pour voir les valeurs de "CurrentUserid" et "Websecurity.CurrentUserid", mais ils n'ont qu'une valeur de -1. L'étape suivante est que l'utilisateur est redirigé vers la page suivante et sur cette page ces fonctions fonctionnent. Je pensais que je serais en mesure d'obtenir l'Iserid car l'utilisateur a déjà été connecté dans la première ligne du code que j'ai fourni ici.

Donc, ma question est pourquoi ne fonctionne-t-elle pas ici? Je suis très noobile avec cela, donc je manque évidemment quelque chose. xxx

merci!


0 commentaires

3 Réponses :


3
votes

de MDSN

Lorsqu'un utilisateur est connecté, ASP.NET définit un jeton d'authentification dans un cookie qui permet à ASP.net savoir sur les demandes suivantes que l'utilisateur a été connecté. Si Persistcookie est faux, le jeton n'est valide que jusqu'à ce que l'utilisateur ferme le navigateur.

SO, WebSecurity.Currenttuserid ne sera utile que sur les demandes suivantes.

Vous devrez trouver une autre façon d'arriver à cette information.


1 commentaires

Y a-t-il un moyen approprié de faire cela?



20
votes

Vous devez utiliser websecurity.getuserid (nom d'utilisateur) xxx

regarder ici: http://msdn.microsoft.com/en-us/library/webmatrix.webdata.websecurity.geturerid (v = vs.99)


3 commentaires

Il semble que ce code repose sur le nom d'utilisateur pour obtenir l'ID utilisateur. Et si deux utilisateurs ont le même nom?


Le lien est maintenant mort. En outre, que si vous ne connaissez pas le nom d'utilisateur?


C'est très partiel, car le site WebSecurity.currenttuserid est essentiellement nécessaire ailleurs dans le code, je suis un gettasersages ou un smth comme ça. et les seuls moyens de la surmonter 1) Faites un aller-retour au serveur. 2) Lorsque vous utilisez la connexion, conservez l'UID (comme suggéré ici) et voyagez avec où vous avez besoin.



0
votes

Veuillez restaurer la connexion WebSecurity. Ajouter un code suivant dans le contrôleur par défaut comme suit: xxx


0 commentaires