2013-01-14 22 views
8

Tôi đang sử dụng tư cách thành viên đơn giản trong ứng dụng MVC 4 asp.net của tôi. Làm thế nào tôi có thể nhận được ngày đăng nhập cuối cùng của người dùng. Tôi không thấy ngày được tạo trong bảng lược đồ trang web mặc định? Tôi có cần phải tạo trường cho ngày LastLogin trong tư cách thành viên đơn giản không? Cảm ơnThành viên đơn giản: Ngày đăng nhập cuối cùng của người dùng

Trả lời

10

tôi đã giải quyết theo cách này:

  1. Tôi đã thêm một lĩnh vực LastLogin để UserProfile Model trong 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. tôi sửa đổi phương pháp nhập trong 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. Sau đó, tôi đã tìm nạp UserProfiles Giống như cách dưới đây:

    public ActionResult Index() 
    { 
        return View("Index",_db.UserProfiles); 
    } 
    
  4. Cuối cùng, tôi hiển thị LastLogin DateTime trong Index.cshtml:

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

Cảm ơn Babul Mirdha. Tôi sẽ giải quyết cùng một cách. Tôi nghĩ rằng có thể có một cái gì đó trong nhà cung cấp thành viên duy nhất tương tự như các thành viên asp.net. Trong thành viên asp.net nó có tài sản lastlogin và cung cấp cho chúng tôi các bản ghi cập nhật lastlogin – Gayatri

+0

Chào mừng, Gayatri, yea, Có tài sản lastlogin là thành viên Asp.Net. Vì vậy, tôi cũng mong đợi rằng LastLogin tài sản trong SimpleMembership trong MVC4 nhưng tôi đã không nhận được nó cho đến bây giờ ..., vì vậy tôi đã giải quyết theo cách này, Cảm ơn. –

+0

Tại sao trường LastLogin này được khai báo là "ảo"? –

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