Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2b3c4b0

Browse files
Login in asp.net core
1 parent 9e677e7 commit 2b3c4b0

File tree

7 files changed

+125
-3
lines changed

7 files changed

+125
-3
lines changed

‎Webgentle.BookStore/Webgentle.BookStore/Controllers/AccountController.cs‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,30 @@ public async Task<IActionResult> Signup(SignUpUserModel userModel)
4747

4848
return View(userModel);
4949
}
50+
51+
52+
[Route("login")]
53+
public IActionResult Login()
54+
{
55+
return View();
56+
}
57+
58+
[Route("login")]
59+
[HttpPost]
60+
public async Task<IActionResult> Login(SignInModel signInModel)
61+
{
62+
if (ModelState.IsValid)
63+
{
64+
var result = await _accountRepository.PasswordSignInAsync(signInModel);
65+
if (result.Succeeded)
66+
{
67+
return RedirectToAction("Index", "Home");
68+
}
69+
70+
ModelState.AddModelError("", "Invalid credentials");
71+
}
72+
73+
return View(signInModel);
74+
}
5075
}
5176
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.ComponentModel.DataAnnotations;
4+
using System.Linq;
5+
using System.Threading.Tasks;
6+
7+
namespace Webgentle.BookStore.Models
8+
{
9+
public class SignInModel
10+
{
11+
[Required, EmailAddress]
12+
public string Email { get; set; }
13+
[Required]
14+
[DataType(DataType.Password)]
15+
public string Password { get; set; }
16+
[Display(Name = "Remember me")]
17+
public bool RememberMe { get; set; }
18+
}
19+
}

‎Webgentle.BookStore/Webgentle.BookStore/Repository/AccountRepository.cs‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ namespace Webgentle.BookStore.Repository
1010
public class AccountRepository : IAccountRepository
1111
{
1212
private readonly UserManager<ApplicationUser> _userManager;
13+
private readonly SignInManager<ApplicationUser> _signInManager;
1314

14-
public AccountRepository(UserManager<ApplicationUser> userManager)
15+
public AccountRepository(UserManager<ApplicationUser> userManager,SignInManager<ApplicationUser>signInManager)
1516
{
1617
_userManager = userManager;
18+
_signInManager = signInManager;
1719
}
1820

1921
public async Task<IdentityResult> CreateUserAsync(SignUpUserModel userModel)
@@ -29,5 +31,10 @@ public async Task<IdentityResult> CreateUserAsync(SignUpUserModel userModel)
2931
var result = await _userManager.CreateAsync(user, userModel.Password);
3032
return result;
3133
}
34+
35+
public async Task<SignInResult> PasswordSignInAsync(SignInModel signInModel)
36+
{
37+
return await _signInManager.PasswordSignInAsync(signInModel.Email, signInModel.Password, signInModel.RememberMe, false);
38+
}
3239
}
3340
}

‎Webgentle.BookStore/Webgentle.BookStore/Repository/IAccountRepository.cs‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@ namespace Webgentle.BookStore.Repository
77
public interface IAccountRepository
88
{
99
Task<IdentityResult> CreateUserAsync(SignUpUserModel userModel);
10+
11+
Task<SignInResult> PasswordSignInAsync(SignInModel signInModel);
1012
}
1113
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
@model Webgentle.BookStore.Models.SignInModel
2+
3+
@{
4+
Layout = null;
5+
}
6+
7+
<!DOCTYPE html>
8+
9+
<html>
10+
<head>
11+
<meta name="viewport" content="width=device-width" />
12+
<title>Login</title>
13+
<environment include="Development">
14+
<link href="~/lib/twitter-bootstrap/css/bootstrap.css" rel="stylesheet" />
15+
</environment>
16+
<environment exclude="Development">
17+
@*<link href="~/lib/twitter-bootstrap/css/bootstrap.min.css" rel="stylesheet" />*@
18+
19+
<link rel="stylesheet"
20+
href="http://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
21+
asp-fallback-href="~/lib/twitter-bootstrap/css/bootstrap.min.css"
22+
asp-fallback-test-class="sr-only"
23+
asp-fallback-test-property="position"
24+
asp-fallback-test-value="absolute"
25+
integrity=""
26+
crossorigin="anonymous">
27+
</environment>
28+
</head>
29+
<body>
30+
31+
<h4>Sign In</h4>
32+
<hr />
33+
<div class="container">
34+
<div class="row">
35+
<div class="col-md-4">
36+
<form asp-action="Login">
37+
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
38+
<div class="form-group">
39+
<label asp-for="Email" class="control-label"></label>
40+
<input asp-for="Email" class="form-control" />
41+
<span asp-validation-for="Email" class="text-danger"></span>
42+
</div>
43+
<div class="form-group">
44+
<label asp-for="Password" class="control-label"></label>
45+
<input asp-for="Password" class="form-control" />
46+
<span asp-validation-for="Password" class="text-danger"></span>
47+
</div>
48+
<div class="form-group form-check">
49+
<label class="form-check-label">
50+
<input class="form-check-input" asp-for="RememberMe" /> @Html.DisplayNameFor(model => model.RememberMe)
51+
</label>
52+
</div>
53+
<div class="form-group">
54+
<input type="submit" value="Login" class="btn btn-primary" />
55+
</div>
56+
</form>
57+
</div>
58+
<div class="col-md-8">
59+
<img class="img-fluid" src="~/images/login.png" />
60+
</div>
61+
</div>
62+
63+
<div>
64+
<p>Click <a asp-action="Signup" asp-controller="Account">here</a> to signup</p>
65+
</div>
66+
</div>
67+
68+
</body>
69+
</html>

‎Webgentle.BookStore/Webgentle.BookStore/Views/Account/Signup.cshtml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
</div>
7373

7474
<div>
75-
<a asp-action="Index">Back to List</a>
75+
<p>Click <a asp-action="Login"asp-controller="Account">here</a> to login</p>
7676
</div>
7777

7878
</div>

‎Webgentle.BookStore/Webgentle.BookStore/Views/Shared/_header.cshtml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
2121
<ul class="navbar-nav">
2222
<li class="nav-item">
23-
<a class="btn btn-outline-primary">Login</a>
23+
<a class="btn btn-outline-primary"asp-controller="Account"asp-action="Login">Login</a>
2424
<a class="btn btn-primary" asp-controller="Account" asp-action="Signup">Register</a>
2525
</li>
2626
</ul>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /