以下行引发NullRefrenceException
:
[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));
}
我检查过并且密码不是null,坚持某种方式md5-ing它返回 null 。
答案 0 :(得分:3)
那是因为MD5.Create
期望的论点是算法名称。
以这种方式修改和使用它。
using (MD5 md5 = MD5.Create())
{
md5.ComputeHash(Encoding.UTF8.GetBytes(passowrd));// logic
}
答案 1 :(得分:2)
这不是你使用MD5
课程的方式。试试这个:
using(MD5 md5Hash = MD5.Create())
{
user.password =
Convert.ToBase64String(md5Hash.ComputeHash(Encoding.UTF8.GetBytes(password)));
}