2014-07-04 16 views
11

Tôi đang di chuyển một trang web ASP.NET từ nhà cung cấp thành viên cũ để ASP.NET danh tính 2ASP.NET nhận dạng đăng ký người dùng ghi lại và cuối cùng đăng nhập vào thời gian

tôi nhận thấy rằng việc đăng ký sử dụng và cuối cùng đăng nhập vào thời gian là không được ghi lại với nhà cung cấp mới. Có cách nào để tùy chỉnh mã để làm điều đó không?

+0

Để chèn thời gian, bạn có thể sử dụng 'trigger' ở phía sau bằng cách sử dụng trình kích hoạt chèn và cập nhật. – Rahul

+0

đó là một chức năng cơ sở dữ liệu phải không? – James

+0

Có.Bạn cần thêm Trình kích hoạt bên trong tên bảng của mình.Khi một hàng mới sẽ chèn trình kích hoạt này sẽ tự động gọi và điền ngày và giờ hiện tại vào cột cụ thể. Tôi cũng có thể gửi cú pháp kích hoạt cho bạn .. – Rahul

Trả lời

14

Để chụp ngày đăng ký và ngày đăng nhập cuối cùng bạn sẽ cần phải mở rộng đối tượng người dùng:

public class ApplicationUser : IdentityUser 
{ 
    public virtual DateTime? LastLoginTime { get; set; } 
    public virtual DateTime? RegistrationDate { get; set; } 

    // other properties 
} 

Và sau đó trên người dùng tạo ra, bạn sẽ phải cư RegistrationDate lĩnh vực. Và trên mỗi lần đăng nhập thành công, bạn sẽ phải cập nhật LastLoginTime.

Và không, danh tính không tự động hỗ trợ các trường này, bạn sẽ phải tự giải quyết các yêu cầu của mình.

+1

Tôi đề nghị một DateTimeOffset không có giá trị. –

+0

hi @trailmax, cách xác định vị trí 'trên mỗi lần đăng nhập thành công'? –

+0

@OhMyDog 'PasswordSignInAsync' [method] (PasswordSignInAsync) trả về đối tượng [SignInStatus] (https://msdn.microsoft.com/en-us/library/microsoft.aspnet.identity.owin.signinstatus (v = vs.108) .aspx). Nếu giá trị được đặt thành 'Thành công' - bạn biết bạn đang làm gì đó. – trailmax

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