2012-08-31 41 views
7

Tôi đã sử dụng nhà cung cấp tư cách thành viên ASP.NET theo cách nó đến và nó được sử dụng tốt cho mục đích cơ bản của tôi. Một điều tôi nhận ra là, nó cài đặt bó của Procs lưu trữ vv vào cơ sở dữ liệu.Nhà cung cấp tư cách thành viên ASP.NET với EF

Có sự triển khai EF của tư cách thành viên ASP.NET không? hoặc sẽ có?

Tôi có một dự án sắp tới mà tôi sẽ cần phải mở rộng chức năng của các nhà cung cấp Thành viên với vai trò và ủy quyền thông qua một số GUI.

Hơn nữa, mỗi khi tôi sử dụng, tôi có hai chuỗi kết nối trong web.config một cho DbContext một cho các dịch vụ ứng dụng đặc biệt cho nhà cung cấp thành viên. Tại sao tôi không thể chỉ có một?

Trả lời

0

Có hệ thống quản lý thành viên gui cho MVC3 bạn có thể xem hoặc thêm vào dự án của bạn.

Bạn có thể chơi xung quanh với họ và xem cách họ làm việc. Nó đơn giản một khi bạn biết nơi để tìm và bạn có thể tạo của riêng bạn.

Membership ClassMembershipUser Class giữ tất cả thông tin người dùng. Ví dụ: để không phê duyệt người dùng, bạn có thể thực hiện việc này:

MembershipUser user = Membership.GetUser("userName"); 
user.IsApproved = false; 
Membership.UpdateUser(user); 

Và nếu bạn muốn xóa người dùng, bạn có thể sử dụng Membership.DeleteUser("userName");.

Roles Class có tất cả thông tin liên quan đến vai trò. Giống như Roles.GetUsersInRole("roleName") sẽ trả về danh sách tất cả người dùng trong vai trò roleName. Roles.CreateRole("roleName"); sẽ tạo vai trò và Roles.DeleteRole("roleName"); sẽ xóa vai trò.

Nếu bạn cần nhiều hơn chỉ mặc định, bạn có thể xem Implementing a Membership Provider.

Theo như có hai cơ sở dữ liệu, điều này là không cần thiết. Bạn có thể thêm tất cả các bảng ASP.NET, các thủ tục được lưu trữ, vv vào cơ sở dữ liệu của bạn bằng cách sử dụng công cụ Aspnet_regsql. Hãy xem Installing the Database using Aspnet_regsql.exe. Điều này sẽ cho phép bạn chỉ có một cơ sở dữ liệu, do đó bạn có thể xóa chuỗi kết nối asp.net trong Web.Config và sau đó thay đổi AspNetSqlMembershipProviderAspNetSqlProfileProviderAspNetSqlRoleProvider và có thể những người khác, sử dụng chuỗi kết nối vào cơ sở dữ liệu chính của bạn.

0

Đối với nhà cung cấp thành viên ASP.NET và Vai trò thực hiện trong Khuôn khổ thực thể, cần phải nhập tất cả dạng xem của ASPNETDB (cơ sở dữ liệu thành viên) trong tệp EDMX. ví dụ. vw_aspnet_MembershipUsers, vw_aspnet_Roles, vw_aspnet_UsersInRoles, vw_aspnet_Users, etc ...

Sau đó, tư cách thành viên sẽ được thực hiện qua EF. Vì vậy, bạn có thể cung cấp GUI bằng cách sử dụng các chức năng dưới đây.

đây là mã bộ điều khiển. ví dụ.

// GET: /Membership/Edit/5 

    public ActionResult Edit(Guid id) 
    { 
     var recordToEdit = (from r in _db.vw_aspnet_Users where r.UserId == id select r).First(); 
     return View(recordToEdit); 
    } 

    public ActionResult Index() 
    { 
     return View(_db.vw_aspnet_MembershipUsers.ToList()); 
    } 

Bây giờ, cách hợp nhất ASPNETDB với cơ sở dữ liệu hiện có, để chỉ tạo một chuỗi kết nối trong web.config. (Câu hỏi của bạn: Tại sao tôi không thể có chỉ một?)

Điều đó cũng có thể thực hiện bằng các bước dưới đây.

ASPNETDB.MDF là cơ sở dữ liệu của nhà cung cấp thành viên và được sử dụng để lưu trữ và truy xuất dữ liệu thành viên từ cơ sở dữ liệu và tại đây chúng tôi sẽ xem cách tạo cơ sở dữ liệu của nhà cung cấp thành viên. Lệnh được sử dụng để tạo Aspnetdb.mdf là ASPNET_RegSQL.EXE

1.Start-> Programs-> Microsoft visual studio 2005-> công cụ studio trực quan-> dấu nhắc lệnh Visual Studio 2005. Gõ ASPNET_RegSQL.EXE vào cửa sổ nhắc lệnh Studio 2005

  1. Thuật sĩ với tiêu đề "Chào mừng bạn đến với trình hướng dẫn máy chủ Sql Asp.Net" sẽ được hiển thị. Ở đây cần phải nhấp vào Tiếp theo

  2. Tiếp theo trình hướng dẫn có "Chọn Tùy chọn thiết lập" sẽ hiển thị. Bây giờ chúng ta cần phải chọn tùy chọn thiết lập "Cấu hình máy chủ sql cho mục đích ứng dụng là mặc định". Chọn cái nào bạn muốn và tiếp theo.

  3. Cửa sổ có "Chọn cơ sở dữ liệu máy chủ Sql" Sẽ được hiển thị Bây giờ chúng tôi cần chọn cơ sở dữ liệu máy chủ sql của chúng tôi. Ở đây cần phải đặt máy chủ, loại xác thực và cơ sở dữ liệu. Nếu chọn tên mặc định "aspnetDb.mdf" sẽ được chọn. Nếu bạn muốn sửa đổi cơ sở dữ liệu hiện có, hãy chọn cơ sở dữ liệu đó.

5.Bây giờ Xác nhận sẽ được hiển thị với tiêu đề “Xác nhận cài đặt của bạn”. Bây giờ hãy kiểm tra tên máy chủ và tên cơ sở dữ liệu và nhấn tiếp theo.

  1. Cửa sổ có "Cơ sở dữ liệu đã được tạo hoặc sửa đổi" Sẽ được hiển thị.Bây giờ click Finish

Hãy cẩn thận trong các bước ở trên, bạn cần phải lựa chọn cơ sở dữ liệu hiện tại của bạn, Một số bảng (11 +), quan điểm, thủ tục được lưu trữ của thành viên và vai trò này sẽ được bổ sung vào cơ sở dữ liệu hiện tại của bạn ....

Hãy tận hưởng nó .... Cảm ơn bạn ...

+0

cách thực hiện việc này nếu bạn đang sử dụng mã DbContext trước? – DarthVader

+0

Để tiếp cận Mã đầu tiên, các lệnh không truy vấn có thể được gửi đến cơ sở dữ liệu bằng cách sử dụng phương thức ExecuteSqlCommand trên cơ sở dữ liệu. context.Database.ExecuteSqlCommand (""); –

+0

cũng không quan tâm đến truy vấn sql hoặc procs được lưu trữ. ai đang sử dụng chúng nữa? – DarthVader

2

Các nhà cung cấp phổ biến là những gì bạn đang tìm kiếm: http://nuget.org/packages/Microsoft.AspNet.Providers.Core

Những được thực hiện sử dụng EF Mã First 5 trong nội bộ, chúng tôi sẽ làm cho các DBContexts nội công một lần chúng tôi đảm bảo mọi thứ hoạt động trơn tru.

Các vấn đề liên quan