Bonjour,
Ok pour le message, dis moi quand ils t'auront répondus.
Sinon je n'avais pas inséré dans la table UsersRoles, mais cela ne passe toujours pas, je vais continuer de chercher un flag ou autre.
Sinon pour crypter le mot de passe de l'utilisateur, j'ai utilisé cette fonction, mais a priori ce n'est pas la bonne?
private String Encrypt(String strKey ,String strData )
{
String strValue = "";
try
{
if (strKey != "" )
{
// convert key to 16 characters for simplicity
if((strKey.Length) < 16)
{
string cleftemp = "XXXXXXXXXXXXXXXX";
strKey = cleftemp.Substring(0,16 - (strKey.Length));
}
else
{
strKey = strKey.Substring(0, 16);
}
// create encryption keys
Byte[] byteKey = Encoding.UTF8.GetBytes(strKey.Substring(0, 8));
Byte[] byteVector = Encoding.UTF8.GetBytes(strKey.Substring(strKey.Length - 8));
// convert data to byte array
Byte[] byteData = Encoding.UTF8.GetBytes(strData);
// encrypt
DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
MemoryStream objMemoryStream = new MemoryStream();
CryptoStream objCryptoStream = new CryptoStream(objMemoryStream, objDES.CreateEncryptor(byteKey, byteVector), CryptoStreamMode.Write);
objCryptoStream.Write(byteData, 0, byteData.Length);
objCryptoStream.FlushFinalBlock();
//convert to string and Base64 encode
strValue =
Convert.ToBase64String(objMemoryStream.ToArray());
}
else
{
strValue = strData;
}
}
catch (Exception e)
{
throw new PhoxException("bError while encrypting password", e);
}
return strValue;
}
Que j'ai appelé comme ceci:
skey = CreateKey(16);
spasswordtemp = Encrypt(skey, pUser.Password);
Byte[] texteBytes = Encoding.ASCII.GetBytes(skey);
skey =
Convert.ToBase64String(texteBytes);
La fonction createkey je l'ai également récupéré de DNN.
Est ce la bonne methode?
Merci d'avance