internal static bool ChangePassword(string userName, string newPassword)
{
lock (typeof(RestService)) {
var path = UserPropertySheetPath;
if (path != null) {
var propertySheet = UserPropertySheet;
var user = propertySheet.Rules.FirstOrDefault(rule => rule.Name == "user" && rule.Parameter == userName);
if (user != null && user.HasProperty("password")) {
using (var hasher = MD5.Create()) {
var newpwd = hasher.ComputeHash(Encoding.Unicode.GetBytes(_service._serviceName + newPassword)).Aggregate(String.Empty, (current, b) => current + b.ToString("x2").ToUpper());
user["password"].Value = newpwd;
propertySheet.Save(path);
}
return true;
}
}
}
return false;
}