Tag Archives: DotNetNuke

DotNetNuke – How to reset host password

DNN

I love to talk about DotNetNuke in this blog, and I’ve already did it a bunch of times (I guess). Well, I like it and I’ve been using it since the 2nd version, when it still supported MS Access databases. It was a long time ago. I will not extend myself. All you have to know about this amazing tool, you can read in the official website: http://www.dnnsoftware.com/.

Even the most experienced DotNetNuke’s users needs to handle some issues that are impossible to do, even using the administration area. Neither the SQL prompt page can help. The only way is coding, perhaps, a DotNetNuke Module. Hopefully, the ASP.NET gave to us the possibility to write “Code In Page” .aspx files and, the best part of it is, you can use all classes available in the website where it runs. So, lets use it for a very unusual trick that almost every DotNetNuke’s administrator once in their lives must needs it. Reset/redefine the host user password.

The .aspx page can be written in C# or VB.NET, it’s a matter of taste. The code bellow redefines the host password to a new one:

<!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>

That is all you need. Just upload this .aspx into your DotNetNuke installation folder and runs the page in your web browser. After this, the host password will be changed to “[newhostpassword]”, or whatever you want. It saves a lot of your time.

I’ve tested this code under the versions 5, 6 and 7 of DotNetNuke .

Enjoy!

DotNetNuke – Criando formulário dinâmicos e customizados

DotNetNukeLogoSe tem uma coisa da qual os usuários do CMS DotNetNuke sentem muita falta, principalmente pela maturidade do sistema, é permitir criar formulários customizados.

Exemplo simples. Você precisa fazer uma coleta de dados de seus visitantes, meia dúzia de questões de campos que resolveriam seu problema, simples demais para o desenvolvimento de um novo módulo, só para isso, complicado demais para um módulo de Survey.

Pelo visto, a comunidade reagiu. O coleta Michael Tobisch desenvolveu um módulo que faz exatamente o descrito acima. São eles:

  • helferlein Form
  • helferlein_BabelFish (requerido)

Ambos podem ser baixados do site gratuitamente, exigindo apenas o registro, que também o é. A instalação segue o padrão, bastando utilizar a interface de administração do DotNetNuke. A única atenção é de instalar o módulo helferlein_BabelFish antes do helferlein_Form. O helferlein_BabelFish permite a localização, ou melhor, a tradução dos módulos disponibilizados no site.

Daí em diante, ele já está disponível para ser adicionado ao site pela barra de tarefas padrão:

helferlein_Form na barra de ferramentas
helferlein_Form na barra de ferramentas

Uma vez colocado, ele solicita, antes de qualquer coisa, uma forma de “submissão”, ou seja, para onde vão os dados que são colocados no formulário que você cria. Há duas opções: Email e Banco de Dados. O melhor de tudo é que estas não são auto exclusivas, podendo trabalhar em conjunto.

O comportamento do Email é óbvio. No caso do banco de dados, as informações pode ser vistas no próprio módulo, mas nada muito refinado, mas passível de leitura.

O CAPTCHA também está presente. Outros recursos são:

  • Localização
  • Customização da aparência/layout
  • Moderação
  • Redirecionamento após o preenchimento do formulário
  • Validação, com customização do layout destas e das mensagens apresentadas
  • Texto de Ajuda para cada item do formulário

Abaixo um exemplo bem simples de formulário montado no módulo:

Exemplo de formulário no helferlein_Form
Exemplo de formulário no helferlein_Form

Versões

O helferlein_Form suporta as versões 4.x e 5.x do DotNetNuke. Aqui, a instalação falhou na versão 5.0, mas foi bem na 5.5. Também estão disponíveis o código fonte dos mesmos.

Download

O download do helferlein_Form pode ser feito no seguinte endereço:

http://www.helferlein.com/DotNetNuke/helferlein_BabelFishModule/tabid/804/language/en-US/Default.aspx

DotNetNuke – Importação de usuários em massa

DotNetNuke
DotNetNuke

O DotNetNuke destaca-se por ser um dos poucos gerenciadores de conteúdo online que rodam na plataforma .NET, da Microsoft. Bom, quem chegou até este post sabe muito bem do que estou falando. Para o restante, reservarei um outro post para falar de uma forma geral sobre este conhecido CMS.

Sob a pressão de uma necessidade na empresa (sempre é), que trabalha com o DotNetNuke, houve uma necessidade específica de efetuar uma grande carga de usuários para um portal específico. Para isso, seria necessário desenvolver algumas rotinas específicas, já que a inserção de um Usuário no Portal DotNetNuke segue algumas regras, a começar pela criptografia da senha. Bom, como toda boa necessidade, antes de desenvolver, vamos ver o que tem na comunidade certo? Bom, o resultado foi uma solução dada por John Mitchell’s, onde em uma simples página, ele criou uma rotina que através de informações de um XML baseado nos campos o objeto UserInfo da biblioteca do DotNetNuke, estes dados são automaticamente importandos para o banco de dados do portal onde a página é hospedada.

O XML é algo parecido com o seguinte:

<Users>
   <User>
      <Username>User1</Username>
      <Email>user1@yahoo.com</Email>
      <FirstName>User</FirstName>
      <LastName>One</LastName>
      <Password>password</Password>
      <Unit></Unit>
      <Street></Street>
      <City></City>
      <Region></Region>
      <PostalCode></PostalCode>
      <Country></Country>
      <Telephone></Telephone>
   </User>
   <User>
      <Username>User2</Username>
      <Email>user2@yahoo.com</Email>
      <FirstName>User</FirstName>
      <LastName>Two</LastName>
      <Password>password</Password>
      <Unit></Unit>
      <Street></Street>
      <City></City>
      <Region></Region>
      <PostalCode></PostalCode>
      <Country></Country>
      <Telephone></Telephone>
   </User>
</Users>

São apenas dois arquivos, o .aspx e o .vb do codebehind, que obviamente executam interpretados, mas executam a proeza com maestria, economizando algumas boas horas de trabalho. Na execução, algumas inconsistências foram detectadas, mas nada que comprometa o trabalho.

Link original:

http://blogs.snapsis.com/CommentView,guid,c9d3082b-d7b1-4dfb-8c9c-67c0e864964d.aspx

Bom proveito!