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!