Trích từ documentation:
Theo thiết kế, lớp SimpleMembershipProvider không thực hiện cấp đầy đủ các chức năng mà có thể trong ASP.NET thành viên nhà cung cấp, như đã định nghĩa trong lớp MembershipProvider được sử dụng bởi tất cả các nhà cung cấp thành viên ASP.NET. Một số thành viên có sẵn trong lớp vì chúng được kế thừa từ lớp cơ sở, nhưng sẽ ném một ngoại lệ nếu bạn truy cập chúng.
Nếu trang web của bạn đòi hỏi khả năng cung cấp thành viên đầy đủ, bạn có thể bỏ khởi của hệ thống thành viên trang web (mà là, không gọi WebSecurity.InitializeDatabaseConnection()) và thay vì đảm bảo rằng các thành viên tiêu chuẩn và vai trò các nhà cung cấp được kích hoạt . Trong trường hợp đó, các cuộc gọi mà bạn thực hiện đối với lớp SimpleMembershipProvider được chuyển đến nhà cung cấp tiêu chuẩn (được gọi là nhà cung cấp trước đó trong tài liệu lớp học SimpleMembershipProvider). Để biết thêm thông tin, hãy xem xem Cấu hình ứng dụng ASP.NET để sử dụng tư cách thành viên.
Trường PasswordSalt
là một trong các cột đó. Nếu bạn nhìn vào mã nguồn của SimpleMembershipProvider bạn sẽ thấy rằng cột PasswordSalt chỉ đơn giản là thiết lập để string.Empty
:
if (database.Execute("INSERT INTO [" + MembershipTableName + "] (UserId, [Password], PasswordSalt, IsConfirmed, ConfirmationToken, CreateDate, PasswordChangedDate, PasswordFailuresSinceLastSuccess) VALUES (@0, @1, @2, @3, @4, @5, @5, @6)", new object[] { num, str, string.Empty, !requireConfirmationToken, obj3, DateTime.UtcNow, num2 }) != 1)
{
throw new MembershipCreateUserException(MembershipCreateStatus.ProviderError);
}
Vì vậy, nếu bạn muốn sử dụng nó, bạn có thể viết một nhà cung cấp thành viên tùy chỉnh đó sẽ ghi đè mặc định một và tự tạo PasswordSalt. Bạn có thể ghi đè phương thức CreateAccount
.
Hmm, vậy tại sao lại có cột muối?Nếu cột muối hữu ích, thì các tình huống có thể xảy ra là gì? – jonprasetyo
@jonprasetyo Tôi không biết. Dự đoán tốt nhất của tôi là nó đã được đưa ra từ các lược đồ nhà cung cấp trước đó và không giảm khi quyết định được thực hiện để tích hợp muối với băm và lưu trữ nó ở một nơi. –