2014-07-04 19 views
11

mam migracji strony internetowej ASP.NET od starego dostawcy członkostwa do ASP.NET Identity 2ASP.NET Identity rejestracji i ostatni rekord użytkownik zalogowany na czas

zauważyłem, że rejestracji użytkownika i ostatni raz zalogowany są nie nagrane z nowym dostawcą. Czy istnieje sposób na dostosowanie kodu, aby to zrobić?

+0

Do wstawienia czasu można użyć "wyzwalacza" z tyłu za pomocą wyzwalacza wstawiania i aktualizacji. – Rahul

+0

to jest funkcja bazy danych, prawda? – James

+0

Tak. Musisz dodać Trigger wewnątrz nazwy tabeli. Gdy nowy wiersz zostanie wstawiony, ten wyzwalacz wywoła automatycznie i wypełni bieżącą datę i godzinę w konkretnej kolumnie. Mogę wysłać także składnię wywołań .. – Rahul

Odpowiedz

14

Aby uchwycić data rejestracji oraz datę ostatniego logowania będziesz musiał przedłużyć obiekt użytkownika:

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

    // other properties 
} 

A potem na tworzeniu użytkownika, będziesz musiał wypełnić RegistrationDate pole. I przy każdym pomyślnym logowaniu będziesz musiał zaktualizować LastLoginTime.

I nie, Tożsamość nie obsługuje tych pól automatycznie, musisz sam sobie poradzić ze swoimi wymaganiami.

+1

Proponuję zerowalny DateTimeOffset. –

+0

hi @trailmax, jak zlokalizować "przy każdym pomyślnym zalogowaniu"? –

+0

@OhMyDog 'PasswordSignInAsync' [metoda] (PasswordSignInAsync) zwraca obiekt [SignInStatus] (https://msdn.microsoft.com/en-us/library/microsoft.aspnet.identity.owin.signinstatus (v = vs.108) .aspx). Jeśli wartość jest ustawiona na "Sukces" - wiesz, że jesteś na czymś. – trailmax