Há algum tempo eu fiz um post aqui sobre o tipo stringoo http://thespoke.net/blogs/shinji/archive/2005/12/14/925243.aspx
Uma brincadeira com uma função muito estranha que encontramos no .net framework que recebe um valor "true" ou "false", uma string booleana eheheh.
Hoje quero mostrar para você um outro método duvidoso, que é mais utilizado mas que também tem algo muito estranho em sua estrutura e a documentação fala dele como se fosse normal..
Olha o cara aqui:
FormsAuthentication.HashPasswordForStoringInConfigFile
http://msdn2.microsoft.com/library/system.web.security.formsauthentication.hashpasswordforstoringinconfigfile.aspx
Não, não é do nome do método que estou falando eheheh
Este é um método Static que retorna um hash de uma string utilizando os algoritmos MDS ou SHA1, somente de ida.
Até aí tudo bem, um exclente método, mas vejam sua assinatura:
public static string HashPasswordForStoringInConfigFile (
string password,
string passwordFormat
)
Devemos passar nosso password em formato string e o formato da criptografia.
Um exemplo de utilização:
FormsAuthentication.HashPasswordForStoringInConfigFile("meuPassword", "md5");
Percebem o nome do algoritmo sendo passado como uma string? Só existem duas alternativa para este parâmetro, "md5" ou "sha1", agora a documentação diz o seguinte:
==========================================
Parameters
password
The password to hash.
passwordFormat
The hash algorithm to use. passwordFormat is a String that represents one of the FormsAuthPasswordFormat enumeration values.
Return Value
The hashed password.
===========================================
Temos que passar uma representação do FormsAuthPassword na string, algo inútil concordam comigo?
Eu não usei o reflector, mas eles precisam fazer comparação de string que com certeza é mais custosa que da constantes que os enums criam.
Está aí mais uma best pratice duvidosa do nosso framework, que apesar dos pesares é maravilhoso 😀
[]’s
Shinji