Hoàn toàn là một điểm tham chiếu, có thể là một ý tưởng hay để tạo một mẫu Ứng dụng Internet mới của một dự án Ứng dụng Web ASP.NET MVC 4 (tức là thông qua Tệp> Dự án Mới).
Nếu bạn nhìn vào AccountController
, như @ zms6445 nói, nó được trang trí bằng InitializeSimpleMembership
thuộc tính. Bạn có thể tìm thấy cách triển khai thuộc tính này trong tệp InitializeSimpleMembershipAttribute.cs trong thư mục Bộ lọc trong thư mục gốc.
Ở đây, đây là phần còn thiếu của câu đố - bạn cần kết nối cơ sở dữ liệu hiện có của mình để SimpleMembershipProvider
sử dụng . Đây là mã bạn cần:
private class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
try
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("CONNECTION_STRING_NAME", "USER_TABLE", "USER_ID_FIELD", "USER_NAME_FIELD", autoCreateTables: true);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("Something is wrong", ex);
}
}
}
Một số điều cần lưu ý:
-
CONNECTION_STRING_NAME
là một mục nhập trong Chuỗi kết nối web.config của bạn - bạn KHÔNG THỂ sử dụng chuỗi kết nối mô hình ở đây -SimpleMembershipProvider
không nhận dạng được định dạng đó! Bạn cần chỉ định mộtSystem.Data.SqlClient
chuỗi kết nối, ví dụ: -
USER_TABLE
là bảng trong cơ sở dữ liệu của bạn để chứa thông tin người dùng bổ sung, chẳng hạn như tên, họ, v.v. Điều này được liên kết với các bảng được tạo tự động qua USER_ID_FIELD. -
USER_ID_FIELD
thường là khóa chính của bảng Người dùng của bạn. Nó phải thuộc loạiint
. -
USER_ID_NAME
là tên riêng của người dùng, có thể là địa chỉ Email. -
autoCreateTables
được đặt thànhtrue
để đảm bảo các bảng cần thiết cho SimpleMembership hoạt động được tạo nếu chúng chưa tồn tại.
Tất nhiên, mã này chỉ được kích hoạt nếu bạn truy cập một trang qua AccountController
, vì điều này đã được trang trí bởi thuộc tính. Bạn có thể đặt một điểm ngắt ở đó và xem nó hoạt động.
Điều này sẽ giúp bạn bắt đầu - mẫu Ứng dụng Internet là một mẫu khá tốt để làm theo nếu bạn gặp khó khăn.
Hy vọng điều này sẽ hữu ích.