domingo, 28 de março de 2010

Criando um identificador único - GUID

Fala, galera!!

Continuando a série "Códigos da Vida".
Estive implementando um cadastro de usuários que necessita de uma confirmação por email para ativação do acesso. Coisa simples. Nada fora do trivial.

No entanto, precisava definir como seria feita a ativação do cadastro.
Não que esse seja um grande problema ou até mesmo um problema.
Mas era preciso definir com calma que informação seria enviada para o email do usuário.

Por questões de segurança, não posso enviar o código do usuário sem criptografar esta informação.
Isso porque na maioria (para não dizer em todos) dos sites o identificador do usuário é um código sequencial.
Desta forma, ficaria fácil um usuário malicioso e criativo achar N formas de prejudicar seu site.

Enviar esta informação criptografada também não é a melhor idéia, pois como a informação é enviada via querystring, alguns caracteres da criptografia podem gerar problemas, dependendo da criptografia utilizada.

A solução foi gerar um GUID utilizando a classe system.Guid.
Um Guid é um identificador único. Como o próprio nome já diz: Globally Unique Identifier

Veja como é fácil:

Dim Identificador as string = System.Guid.NewGuid.ToString

A string gerada será algo como: "91752d05-2274-4e56-9251-4bb4b5fccd6c"

Desta forma, não preciso expor nenhuma informação sensível do usuário e nenhum usuário malicioso conseguirá "adivinhar" um GUID válido.

Um abraço e até a próxima!!