2015-11-27 16 views
5

Trong trang web Asp.net Mvc 6, tôi đã tùy chỉnh ra ngoài hộp AccountController để tôi thêm Xác nhận quyền sở hữu tùy chỉnh trước khi gọi userManager.CreateAsync(), cả khi đăng kýAsp.net Mvc 6 nhận được xác nhận quyền sở hữu ngay lập tức sau khi đăng nhập

  • với một tài khoản cục bộ (email/mật khẩu), trong phương pháp Register() của bộ điều khiển
  • với một nhà cung cấp bên ngoài (google/facebook), trong ExternalLoginConfirmation() của bộ điều khiển

Bây giờ những gì tôi muốn làm là ngay lập tức sau người sử dụng đăng nhập vào, cả hai

  • trong phương pháp Login() sau khi gọi signInManager.PasswordSignInAsync()
  • trong phương pháp ExternalLoginCallback() sau khi gọi signInManager.ExternalLoginSignInAsync()

... để lấy tuyên bố rằng, lý tưởng mà không va vào DB để có được người dùng.

Tôi nhận thấy rằng nếu tôi xem trực tiếp Người dùng sau khi đăng nhập, bộ sưu tập Xác nhận quyền sở hữu trống. Tuy nhiên, nếu tôi xem xét nó trong một hành động điều khiển tiếp theo, bộ sưu tập Yêu cầu bồi thường được điền và có yêu cầu tùy chỉnh của tôi trong đó.

Câu hỏi đặt ra là tại sao không phải là Xác nhận quyền sở hữu được điền ngay sau khi đăng nhập (tôi đoán mã đăng nhập không làm mới CurrentPrincipal?) Và có một địa điểm khác để kiểm tra trực tiếp sau khi đăng nhập để nhận các tuyên bố mà không cần nhấn DB?

+0

Tôi có thể repro những gì bạn đang thấy, có thể là do thiết kế ... thử đăng câu hỏi này tại http://github.com/aspnet/identity/issues –

Trả lời

0

Bạn có thể thử triển khai ApplicationUserStore của riêng mình và điền vào bất kỳ thuộc tính nào của người dùng (hoặc thực thể được sử dụng làm thực thể nhận dạng) mà bạn cần.

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