2016-03-21 9 views
-3

Die folgende Zeile führt NullRefrenceException:MD5.Create() throws NullRefrence

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public void newUser(string name, string password,string email) 
    { 
     var db = new ORMDataContext(); 
     var user = new User(); 
     Console.Write(password); 
     user.email = email; 
     user.password = MD5.Create(password).ToString(); 
     user.username = name; 
     db.Users.InsertOnSubmit(user); 
     db.SubmitChanges(); 
     this.Context.Response.ContentType = "application/json; charset=utf-8"; 
     this.Context.Response.Write(JsonConvert.SerializeObject(user.Id)); 


    } 

I geprüft und Passwort ist nicht null, Mutter irgendwie md5-ing es null zurückgibt.

+2

'user == null'? –

+0

Lassen Sie mich die ganze Methode setzen –

+2

Ich denke, Sie können leicht herausfinden, welche Null durch Debugging ist ... –

Antwort

3

Das ist, weil das Argument, dass MD5.Create erwarten Algorithmus Name ist.

Ändern und verwenden Sie es auf diese Weise.

using (MD5 md5 = MD5.Create()) 
{ 
    md5.ComputeHash(Encoding.UTF8.GetBytes(passowrd));// logic 
} 
2

Das ist nicht, wie Sie die Klasse MD5 verwenden. Versuchen Sie dies:

using(MD5 md5Hash = MD5.Create()) 
{ 
    user.password = 
     Convert.ToBase64String(md5Hash.ComputeHash(Encoding.UTF8.GetBytes(password))); 
}