Lấy Id khá đơn giản và bạn đã giải quyết được điều đó.
Câu hỏi thứ hai của bạn mặc dù có liên quan nhiều hơn một chút.
Vì vậy, đây là tất cả các công cụ phát hành ngay bây giờ, nhưng vấn đề chung mà bạn đang gặp phải là nơi bạn đang mở rộng người dùng với các thuộc tính mới (hoặc bộ sưu tập Các mục trong câu hỏi).
Ngoài hộp, bạn sẽ nhận được tệp có tên IdentityModel
trong thư mục Mô hình (tại thời điểm viết). Trong đó bạn có một vài lớp; ApplicationUser
và ApplicationDbContext
.Để thêm bộ sưu tập của bạn là Items
, bạn sẽ muốn sửa đổi lớp ApplicationUser
, giống như bạn nếu đây là lớp bình thường bạn đang sử dụng với Entity Framework. Trong thực tế, nếu bạn nhìn nhanh dưới mui xe, bạn sẽ thấy rằng tất cả các lớp liên quan đến danh tính (User, Role, ...) chỉ là POCO với chú thích dữ liệu thích hợp để chúng hoạt động tốt với EF6.
Tiếp theo, bạn sẽ cần thực hiện một số thay đổi đối với hàm tạo AccountController
để nó biết sử dụng DbContext của bạn.
public AccountController()
{
IdentityManager = new AuthenticationIdentityManager(
new IdentityStore(new ApplicationDbContext()));
}
Bây giờ, hãy nhận được toàn bộ đối tượng người dùng cho người dùng đã đăng nhập của bạn là một chút bí truyền thành thật.
var userWithItems = (ApplicationUser)await IdentityManager.Store.Users
.FindAsync(User.Identity.GetUserId(), CancellationToken.None);
Dòng đó sẽ hoàn thành công việc và bạn có thể truy cập userWithItems.Items
như bạn muốn.
HTH
Đã thêm tham chiếu về những gì tôi đã thử. Người cuối cùng đã được OK trong MVC4 nhưng không phải trong MVC5. Ngoài ra tôi cần một số thực hành tốt nhất về "sử dụng người dùng" :) –
Khi bạn nói bạn đang sử dụng MVC 5, bạn đang sử dụng thành viên nào? OWin.Security? – Aron
"Tài khoản người dùng cá nhân" từ mẫu MVC. –