DotNetNuke – Efetuando o reset na senha do host

DNN

Já falei sobre o DotNetNuke por aqui. Devo ter comentado também o quanto gosto dele. Enfim, trabalho com este CMS desde a versão 2, quando ainda havia a opção de rodar usando banco de dados em Access (isso mesmo). Você pode ler tudo o que precisa saber sobre ele no site oficial do produto: http://www.dnnsoftware.com/.

Pois, para quem vive com ferramenta, passa por alguns problemas que a área de administração não consegue resolver. Nem mesmo apelando para a pessoal da infra. Resta codificar. Uma dessas situações é quando se perde a senha do usuário host, que é o principal usuário do sistema. Quando isso acontece, um truque pouco utilizado é codificar uma página ASP.NET, seja em C# ou VB.NET com as rotinas necessárias para executar o que é necessário. Vou deixar para explicar a façanha em outro post, deixando abaixo o código que você precisa colocar dentro de um ASPX para redefinir a senha do usuário ‘host’:

<!DOCTYPE html>
<%@ Page Language="C#" %>
<script runat="server">
	void Page_Load(object sender, System.EventArgs e)
	{
		DotNetNuke.Entities.Users.UserInfo user = DotNetNuke.Entities.Users.UserController.GetUserByName("host");
 
		if (user != null)
		{
			DotNetNuke.Entities.Users.UserController.ResetPasswordToken(user);
			var passwordChanged = DotNetNuke.Entities.Users.UserController.ChangePasswordByToken(user.PortalID, user.Username, "[novasenhadohost]", user.PasswordResetToken.ToString());
 
			if(passwordChanged)
			{
				Response.Write("Senha alterada com sucesso");
			}
			else
			{
				Response.Write("Não foi possível alterar a senha.");
			}
 
		}
		else
		{
			Response.Write("Usuário não encontrado");
		}
 
	}
</script>
<html lang="pt-BR">
	<head>
		<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
		<title>Redefinindo a senha do host</title>
	</head>
 
	<body>
	</body>
</html>

É tudo o que você precisa. Basta colocar a página na raiz do seu site DNN e a senha do host será redefinida para o que estiver no lugar da string “[novasenhadohost]”. Um baita salva vidas.

O código foi testado nas versões 5, 6 e 7 do DotNetNuke.

Bom proveito!

Comentários

comentários