2013-01-14 8 views
8

Sto utilizzando la semplice appartenenza alla mia applicazione asp.net MVC 4. Come posso ottenere la data di ultimo accesso dell'utente. Non vedo la data viene creata nella tabella dello schema delle pagine web di default? Devo creare il campo per la data LastLogin in semplice abbonamento? GrazieAbbonamento semplice: Data ultimo accesso dell'utente

risposta

10

ho risolto in questo modo:

  1. ho aggiunto un campo LastLogin a UserProfile Modello in UsersContext:

    [Table("UserProfile")] 
    public class UserProfile 
    {  
        [Key]  
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
        public int UserId { get; set; } 
        public virtual string UserName { get; set; } 
        public virtual DateTime? LastLogin { get; set; } 
    } 
    
  2. ho modificato il metodo di login in AccountController:

    public ActionResult Login(LoginModel model, string returnUrl) 
    {    
        if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))  
        { 
         using (UsersContext db=new UsersContext())     
         { 
          UserProfile userProfile = db.UserProfiles.SingleOrDefault(u=>u.UserName==model.UserName); 
          userProfile.LastLogin = DateTime.Now; 
          db.Entry(userProfile).State=EntityState.Modified; 
          db.SaveChanges(); 
         } 
    
         return RedirectToLocal(returnUrl); 
        } 
    
        // If we got this far, something failed, redisplay form 
        ModelState.AddModelError("", "The user name or password provided is incorrect."); 
        return View(model); 
    } 
    
  3. Quindi ho recuperato UserProfiles piace il modo in muggito:

    public ActionResult Index() 
    { 
        return View("Index",_db.UserProfiles); 
    } 
    
  4. Infine, visualizzate LastLogin DateTime in Index.cshtml:

    @foreach (var item in Model) 
    { 
        <tr> 
         <td> 
          @Html.DisplayFor(modelItem => item.UserName) 
         </td> 
         <td> 
          @Html.DisplayFor(modelItem => item.LastLogin) 
         </td> 
        </tr> 
    } 
    
+0

Grazie Babul Mirdha. Lo risolverò allo stesso modo. Ho pensato che potrebbe esserci qualcosa in un singolo provider di appartenenza simile all'appartenenza di asp.net. In appartenenza asp.net ha la proprietà lastlogin e ci dà gli aggiornamenti record l'ultimo login – Gayatri

+0

Benvenuto, Gayatri, sì, c'è la proprietà lastlogin è membro membro Asp.Net. Quindi mi aspettavo anche che la proprietà LastLogin in SimpleMembership in MVC4, ma non ho capito fino ad ora ..., così ho risolto in questo modo, grazie. –

+0

Perché questo campo LastLogin è dichiarato "virtuale"? –