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

Appearance settings

Commit bf5b7fe

Browse filesBrowse files
committed
prevent login without email confirmation
1 parent bf13789 commit bf5b7fe
Copy full SHA for bf5b7fe

File tree

Expand file treeCollapse file tree

1 file changed

+21
-14
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+21
-14
lines changed

‎AspNetCoreIdentity/Controllers/AccountController.cs

Copy file name to clipboardExpand all lines: AspNetCoreIdentity/Controllers/AccountController.cs
+21-14Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class AccountController : Controller
2222
private readonly SignInManager<IdentityUser> _signInManager;
2323
private readonly IEmailSender _emailSender;
2424

25-
public AccountController(UserManager<IdentityUser> userManager,
25+
public AccountController(UserManager<IdentityUser> userManager,
2626
SignInManager<IdentityUser> signInManager, IEmailSender emailSender)
2727
{
2828
_userManager = userManager;
@@ -113,17 +113,26 @@ public async Task<ResultVM> Login([FromBody] LoginVM model)
113113
{
114114
var user = await _userManager.FindByNameAsync(model.UserName);
115115

116-
if (user != null && await _userManager.CheckPasswordAsync(user, model.Password))
116+
if (user != null)
117117
{
118+
var result = new ResultVM();
118119

119-
await _signInManager.PasswordSignInAsync(model.UserName, model.Password, true, lockoutOnFailure: false);
120-
121-
return new ResultVM
120+
if (!await _userManager.IsEmailConfirmedAsync(user))
122121
{
123-
Status = Status.Success,
124-
Message = "Succesfull login",
125-
Data = model
126-
};
122+
result.Status = Status.Error;
123+
result.Data = "<li>Email confirmation required</li>";
124+
}
125+
else if (await _userManager.CheckPasswordAsync(user, model.Password))
126+
{
127+
await _signInManager.PasswordSignInAsync(model.UserName, model.Password, true,
128+
lockoutOnFailure: false);
129+
130+
result.Status = Status.Success;
131+
result.Message = "Successful login";
132+
result.Data = model;
133+
}
134+
135+
return result;
127136
}
128137

129138
return new ResultVM
@@ -186,12 +195,10 @@ public async Task<IActionResult> ConfirmEmail(string userId, string code)
186195
}
187196

188197
var result = await _userManager.ConfirmEmailAsync(user, code);
189-
if (!result.Succeeded)
190-
{
191-
throw new InvalidOperationException($"Error confirming email for user with ID '{userId}':");
192-
}
198+
var message = !result.Succeeded ? $"Error confirming email for user with ID '{userId}':" : "Confirmation succeeded";
199+
193200

194-
return new LocalRedirectResult("/");
201+
return new LocalRedirectResult($"/?message={message}&type={(result.Succeeded ? "success" : "danger")}");
195202
}
196203

197204
[HttpPost]

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.