Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sử dụng MVC 4 SimpleMembership với mô hình EF ưu tiên cơ sở dữ liệu hiện có

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 ý:

  1. 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ột System.Data.SqlClient chuỗi kết nối, ví dụ:

  2. 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.

  3. 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ại int .

  4. USER_ID_NAME là tên riêng của người dùng, có thể là địa chỉ Email.

  5. autoCreateTables được đặt thành true để đả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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối python 3.3 với microsoft sql server 2008

  2. SQL Server CTE -Tìm ID cha mẹ hàng đầu cho mỗi ID con?

  3. Linq to Entities:sử dụng ToLower () trên các trường NText

  4. Cách lấy số tiếp theo trong một dãy số

  5. Hiểu kiểm tra kết thúc CTE đệ quy