Asp.net 2.0 - activer un membershipuser

4/5 (3 avis)

Snippet vu 20 452 fois - Téléchargée 31 fois

Contenu du snippet

En ASP.NET 2.0, lorsque vous utilisez le contrôle CreateUserWizard pour créer un compte, vous pouvez selectionner une option afin de ne pas activer le nouveau compte créé. Ceci peut être pratique par exemple si vous souhaitez avoir un Email de confirmation et de validation de compte, comportement classique sur les sites Internet. Vu que le contrôle CreateUserWiard est capable d'envoyer automatiquement un Email, et que vous pouvez customiser le message à l'aide de l'évènement "CreateUserWizard1_SendingMail", vous pouvez par exemple définir un lien avec une variable en querystring représentant l'identifiant du compte.

Voici un bout de code (un exemple de page) qui valide (active) un compte utilisateur en fonction de l'identifiant unique le représentant dans le memberShipProvider sélectionné.

Source / Exemple :


using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
  
public partial class public_validation : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
        //on verifie qu'un guid est donné en parametre 
        if (Request.QueryString["guid"] != null) 
        { 
            string queryGuid = Request.QueryString["guid"]; 
            Guid gu = new Guid(queryGuid); 
  
            //on récupére le membershipUser correspondant au guid 
            MembershipUser user = Membership.GetUser(gu); 
            if (user != null) 
            { 
                //on active le compte utilisateur et on met à jour 
                user.IsApproved = true; 
                Membership.UpdateUser(user); 
  
                Label1.Text = "The user has been approved, you can now log in"; 
                Label1.ForeColor = System.Drawing.Color.Black; 
            } 
            else 
            { 
                Label1.Text = "This user doesn't exist ou has been deleted, you need to create your account again"; 
                Label1.ForeColor = System.Drawing.Color.Red; 
                //implementer ici l'erreur 
            } 
        } 
    } 
    protected void bt_continue_Click(object sender, EventArgs e) 
    { 
        //faire la redirection sur la page de connection par exemple, ou d'acceuil 
       // Response.Redirect("../private/private.aspx"); 
    } 
}

A voir également

Ajouter un commentaire Commentaires
yann1947 Messages postés 19 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 6 mars 2013
15 mars 2008 à 01:29
Je teste actuellement la gestion des utilisateurs sur un site, j'ai réalisé un script similaire,tout fonctionne parfaitement sauf l'insertion du Guid dans le lien du mail.
J'arrise à inserer le login et le mot de passe avec :
.......<%UserName%>
.......<%Password%>
Pour le ProviderUserKey ?????
Utilisateur anonyme
3 janv. 2008 à 16:15
Merci pour l'info ! Je cherchais justement l'autre jour.
A++
quineman Messages postés 72 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 10 novembre 2008
19 sept. 2006 à 12:35
Comment envoi t on le guid dans le lien ?
C'est assez complexe pour un petit commentaire je pense ?
Merci pour la source !
En VB :
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Collections
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls

Partial Class authentification_validate
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim queryGuid As String
'on verifie qu'un guid est donné en parametre
If IsNothing(Request.QueryString("guid")) Then
queryGuid = Request.QueryString("guid")
Dim gu As New Guid(queryGuid)
'on récupére le membershipUser correspondant au guid
Dim User As MembershipUser
User = Membership.GetUser(gu)

If IsNothing(User) Then
User.IsApproved = True
Membership.UpdateUser(User)
'on active le compte utilisateur et on met à jour
lblMess.Text = "Votre compte est désormais actif."
Else
lblMess.Text = "L'utilisateur n'éxiste pas ou a été supprimé.
Vous devez créer un compte à nouveau."

End If
End If

End Sub

Protected Sub btnContinuer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnContinuer.Click

Response.Redirect("~/authentification/Login.aspx")

End Sub


End Class

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.