DNN-RAZMotDePasse

RAZ de son mot de passe DNN

Introduction (22/01/2006)

Fallait bien que ça arrive...

Entre les versions de dev et les versions PA, les versions 320 et la nouvelle 400 (à l'heure où j'écrit), les versions en local et les versions en ligne : Boum ! J'ai perdu mon mot de passe host.

Heureusement, un accès à la base de donnée MSSQL permet de remplacer ce mot de passe par un déjà connu.

L'idée vient de là :

http://bander.blogspirit.com/archive/2005/09/10/dnn-host-password-reset.html

Procédure stockée (30/01/2006)

La procédure stockée qui en découle donne ceci...

/*
Auteur	: Fabrice Vado
Date	: 20060130
Exemple	:

exec VndM_Membership_CopyPassword 'fabrice', 'vado', 'fabrice', 'host'
*/

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

ALTER PROCEDURE dbo.VndM_Membership_CopyPassword
	@SourceFirstName as varchar(255),
	@SourceLastName as varchar(255),
	@DestFirstName as varchar(255),
	@DestLastName as varchar(255)
AS
BEGIN
    DECLARE @SourceUsername as varchar(255)
    DECLARE @DestUsername as varchar(255)
	DECLARE	@Password as varchar(255)
	DECLARE	@PasswordSalt as  varchar(255)

	-- UserID du membre source
	SELECT @SourceUsername = CAST([Username] AS UniqueIdentifier)
	FROM [DotNetNuke].[dbo].[dnn_Users]
	where [FirstName] = @SourceFirstName
	and  [LastName] = @SourceLastName

	-- UserID du membre destination
	SELECT @DestUsername = [Username]
	FROM [DotNetNuke].[dbo].[dnn_Users]
	where [FirstName] = @DestFirstName
	and  [LastName] = @DestLastName

    -- Mot de passe + Salt du membre source
    SELECT @Password = NULL
    SELECT @PasswordSalt = NULL
    
	SELECT 	@Password = Password, @PasswordSalt = PasswordSalt
	FROM	dbo.aspnet_Membership m, dbo.aspnet_Users u
	where	m.UserId = u.UserId
	AND u.UserName = @SourceUsername
    
    -- MAJ du mot de passe
    If @Password = NULL
    	RETURN(1)
    	
    UPDATE dbo.aspnet_Membership
    SET [Password] = @Password, PasswordSalt = @PasswordSalt
    where	UserId = (
		SELECT u.UserId
		FROM	dbo.aspnet_Membership m, dbo.aspnet_Users u
		where	m.UserId = u.UserId
		AND u.UserName = @DestUsername
	)

    RETURN(0)
   
END

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO