2009-03-14 34 views
6

Tôi đang viết một ứng dụng mới trong ASP.NET MVC. Tôi đã tạo ra một MembershipProvider tùy chỉnh lưu trữ dữ liệu thành viên trong lược đồ db của riêng tôi. Tất cả đều hoạt động, nhưng làm cách nào để tôi có được MembershipUser trong ứng dụng của mình, như vậy tôi có thể lấy khóa người dùng của người dùng đã đăng nhập và tải các lớp mô hình liên quan đến người dùng đó?Lấy MembershipUser trong ASP.NET MVC

Trả lời

9

Bạn có thể sử dụng như sau:

using System.Web.Security; 

var user = Membership.GetUser(); 
+0

bạn vẫn cần một tham chiếu đến System.Web.ApplicationServices (4.0) để có thể truy cập vào bất kỳ thuộc tính MembershipUser – BozoJoe

+0

nó cho HttpException với thêm thông tin 'Không thể kết nối với cơ sở dữ liệu SQL Server. Bất kỳ ý tưởng gì tôi thiếu? – Dashrath

4

Sử dụng Membership lớp tĩnh để lấy người dùng sử dụng GetUser. Bạn sẽ cần định cấu hình nhà cung cấp của mình trong tệp web.config. Khi đăng nhập bạn nhận được tên người dùng từ, có lẽ, một hộp văn bản trên biểu mẫu của bạn. Sau khi đăng nhập, bạn có thể lấy nó từ thuộc tính User của controller.

string username = this.User.Identity.Name; 
MembershipUser user = Membership.GetUser(username); 
+2

Sau đó tôi đã tìm thấy rằng bạn không cần tên người dùng vì Membership.GetUser() chỉ trả về người dùng đã đăng nhập hiện tại. –