Chào bạn Tìm kiếm | Bài viết mới | Thành viên | Đăng ký | Đăng nhập |
E-Groups Forum E.G 1.0 » Lập trình websites Asp.Net mô hình mvc » Share code asp .net mvc » Code Custom Login, Register, and Logout in MVC 4 Using Razor and EF
Code Custom Login, Register, and Logout in MVC 4 Using Razor and EF  
Chủ đề trước ·
egroups
13/9/2014 5:44:48 SA
Lơ tơ mơ

Cấp bậc: Thành viên mới

Tham gia: 30/1/2013
Bài viết: 93
Đến từ: TpHCM

Đánh giá: [0]
{Bình chọn}
Được Cảm ơn: 1 lần

Custom Login, Register, and Logout in MVC 4 Using Razor and EF


Mình thấy project code này giúp ít cho coder asp .net mvc4,5 nên đăng lên share code cho anh em dùng !

Link download: Code đăng ký đăng nhập asp .net mvc4



img1.jpg

img2.jpg

namespace LoginInMVC4WithEF.Models

{

using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

public partial class Registration

{

public int UserId { get; set; }

[Required]

[EmailAddress]

[StringLength(150)]

[Display(Name = "Email Address: ")]

public string Email { get; set; }

[Required]

[DataType(DataType.Password)]

[StringLength(150, MinimumLength = 6)]

[Display(Name = "Password: ")]

public string Password { get; set; }

public string PasswordSalt { get; set; }

[Required]

[Display(Name = "First Name: ")]

public string FirstName { get; set; }

[Required]

[Display(Name = "Last Name: ")]

public string LastName { get; set; }

public string UserType { get; set; }

public System.DateTime CreatedDate { get; set; }

public bool IsActive { get; set; }

public string IPAddress { get; set; }

}

public partial class UserEntities2 : DbContext

{

public UserEntities2()

: base("name=UserEntities2")

{

}

protected override void OnModelCreating(DbModelBuilder modelBuilder)

{

throw new UnintentionalCodeFirstException();

}

public DbSet Registrations { get; set; }

}

Now to add a controller.

img3.jpg

using System.Web.Security;

using LoginInMVC4WithEF.Models;


Now add the following functions and methods.

//

// GET: /User/

public ActionResult Index()

{

return View();

}

[HttpGet]

public ActionResult LogIn()

{

return View();

}

[HttpPost]

public ActionResult LogIn(Models.Registration userr)

{

//if (ModelState.IsValid)

//{

if (IsValid(userr.Email, userr.Password))

{

FormsAuthentication.SetAuthCookie(userr.Email, false);

return RedirectToAction("Index", "Home");

}

else

{

ModelState.AddModelError("", "Login details are wrong.");

}
return View(userr);

}

[HttpGet]

public ActionResult Register()

{

return View();

}

[HttpPost]

public ActionResult Register(Models.Registration user)

{

try

{

if (ModelState.IsValid)

{

using (var db = new LoginInMVC4WithEF.Models.UserEntities2())

{

var crypto = new SimpleCrypto.PBKDF2();

var encrypPass = crypto.Compute(user.Password);

var newUser = db.Registrations.Create();

newUser.Email = user.Email;

newUser.Password = encrypPass;

newUser.PasswordSalt = crypto.Salt;

newUser.FirstName = user.FirstName;

newUser.LastName = user.LastName;

newUser.UserType = "User";

newUser.CreatedDate = DateTime.Now;

newUser.IsActive = true;

newUser.IPAddress = "642 White Hague Avenue";

db.Registrations.Add(newUser);

db.SaveChanges();

return RedirectToAction("Index", "Home");

}

}

else

{

ModelState.AddModelError("", "Data is not correct");

}

}

catch (DbEntityValidationException e)

{

foreach (var eve in e.EntityValidationErrors)

{

Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",

eve.Entry.Entity.GetType().Name, eve.Entry.State);

foreach (var ve in eve.ValidationErrors)

{

Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",

ve.PropertyName, ve.ErrorMessage);

}

}

throw;

}

return View();

}

public ActionResult LogOut()

{

FormsAuthentication.SignOut();

return RedirectToAction("Index", "Home");

}

private bool IsValid(string email, string password)

{

var crypto = new SimpleCrypto.PBKDF2();

bool IsValid = false;

using (var db = new LoginInMVC4WithEF.Models.UserEntities2())

{

var user = db.Registrations.FirstOrDefault(u => u.Email == email);

if (user != null)

{

if (user.Password == crypto.Compute(password, user.PasswordSalt))

{

IsValid = true;

}

}

}

return IsValid;

}

img4.jpg img5.jpg

Image 5.

As you can see in the model class, all fields are required so these messages are displayed.

img6.jpg

img7.jpg

Image 7.

Now insert all values properly, then you will see it will register and data should inserted into the database, now you can login.

img8.jpg

Image 8.

img9.jpg

Chúc các bạn thành công !



<< Sửa đổi bởi: egroups -- 13/9/2014 5:57:43 SA >>
---------------------------------
Hỗ trợ lập trình asp .net mvc5 khóa 5 tháng đảm bảo sẽ code chuyên nghiệp. Liên hệ: 0166.795.666.5

{ Hãy nhập thông tin bình luận bài viết này }
 
egroups đã offline
 #1  
Thành viên đang xem
Có 1 người dùng đang xem (1 khách)
E-Groups Forum E.G 1.0 » Lập trình websites Asp.Net mô hình mvc » Share code asp .net mvc » Code Custom Login, Register, and Logout in MVC 4 Using Razor and EF
Di chuyển nhanh:  
Có bài mới Có bài mới Không có bài mới Không có bài mới
Có bài mới (Đã khóa) Có bài mới (Đã khóa) Không có bài mới (Đã khóa) Không có bài mới (Đã khóa)
Thông báo Thông báo Chú ý Chú ý
Đã chuyển Đã chuyển Bình chọn Bình chọn
Bạn không thể gửi bài viết mới
Bạn không thể trả lời bài viết
Bạn có thể xóa bài viết của bạn
Bạn có thể chỉnh sửa bài viết của bạn
Bạn không thể tạo bình chọn
Bạn có thể bình chọn
Giờ hiện tại: 7:13 CH - GMT + 7
Powered by E-GROUPS Việt Nam phiên bản Mã Nguồn Mở Forum EG 1.0

Share full soure code web, Thiết kế web, Asp .Net MVC, Asp .Net MVC4, Asp .Net MVC5, Mã nguồn mở forum EG 1.0, Thương Mại Điện Tử, Diễn đàn SEO
, thiet ke web gia re, thiet ke web chuyen nghiep