私のコントローラーでは、次のように CSV からユーザーを読み取ります。
var users = Utilities.GetUsersFromCSV(path, userType, course);
これは CSV ファイルを読み取り、User
それを使用してオブジェクトを構築します。おそらく関連する部分の 1 つは、パスワードの作成です。
public static List<User> GetUsersFromCSV(string filepath, string userType, Course course) {
var users = new List<User>();
var user = new User();
GeneratePassword(ref user);
return users;
}
private static void GeneratePassword(ref User user) {
var size = Rand.Value.Next(0, 3) + 8;
var sb = new StringBuilder();
var shuffledlist = Chars.OrderBy(a => Guid.NewGuid()).ToList();
for (var i = 0; i < size; i++) {
sb.Append((char) shuffledlist[i]);
}
user.Password = sb.ToString();
}
ユーザーが CSV ファイルから作成された後、次のようにデータベースに追加します。
_userRepository.AddUsers(Utilities.HashPasswords(users));
どの呼び出し
public static List<User> HashPasswords(List<User> users) {
var newList = new List<User>(users);
foreach (var user in newList) {
user.Password = CalculateSha1Hash(user.Password, user.Login);
}
return newList;
}
この回答によると、リポジトリに送信されているユーザーリストにはハッシュされたパスワードが含まれているusers
はずですが、コントローラーのリストには元のパスワードが含まれているはずです。HashPasswords
ただし、デバッグ中に、 のパスワードにも影響することに気付きましたusers
。
これは何が原因ですか?