add register + change style of login page

features/IdentitySvc
Vianney JOURDY 2 weeks ago
parent 4eb17bf7bd
commit 9baad91ab4

@ -2,10 +2,6 @@
@model IdentitySvc.Pages.Login.Index
<div class="login-page">
<div class="lead">
<h1>Login</h1>
<p>Choose how to login</p>
</div>
<partial name="_ValidationSummary" />
@ -13,10 +9,10 @@
@if (Model.View.EnableLocalLogin)
{
<div class="col-sm-6">
<div class="col-6 offset-3">
<div class="card">
<div class="card-header">
<h2>Local Account</h2>
<h2>Login</h2>
</div>
<div class="card-body">
@ -44,6 +40,10 @@
</div>
}
<a class="pb-2 d-block" asp-page="../Register/Index" asp-route-returnUrl="@Model.Input.ReturnUrl">
New User? Register here
</a>
<button class="btn btn-primary" name="Input.Button" value="login">Login</button>
<button class="btn btn-secondary" name="Input.Button" value="cancel">Cancel</button>
</form>

@ -0,0 +1,64 @@
@page
@model IdentitySvc.Pages.Register.Index
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div>
<partial name="_ValidationSummary" />
<div class="row">
<div class="col-6 offset-3">
<div class="card">
<div class="card-header">
<h2>Register</h2>
</div>
<div class="card-body">
<form asp-page="/Account/Register/Index">
<input type="hidden" asp-for="Input.ReturnUrl" />
<div class="form-group">
<label asp-for="Input.Username"></label>
<input class="form-control" placeholder="Username" asp-for="Input.Username" autofocus>
</div>
<div class="form-group">
<label asp-for="Input.Email"></label>
<input class="form-control" placeholder="Email" asp-for="Input.Email">
</div>
<div class="form-group">
<label asp-for="Input.FullName"></label>
<input class="form-control" placeholder="Full name" asp-for="Input.FullName">
</div>
<div class="form-group">
<label asp-for="Input.Password"></label>
<input type="password" class="form-control" placeholder="Password" asp-for="Input.Password" autocomplete="off">
</div>
<a class="pb-2 d-block" asp-page="../Login/Index" asp-route-returnUrl="@Model.Input.ReturnUrl">
Already Regitered? Login here
</a>
<button class="btn btn-primary" name="Input.Button" value="register">Register</button>
<button class="btn btn-secondary" name="Input.Button" value="cancel">Cancel</button>
</form>
</div>
@if (Model.RegisterSuccess)
{
<div class="alert-success mt-2">
<strong>Successfully registered</strong> - You can now login
</div>
}
</div>
</div>
</div>
</div>
</body>
</html>

@ -0,0 +1,66 @@
using System.Security.Claims;
using IdentityModel;
using IdentitySvc.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace IdentitySvc.Pages.Register;
[SecurityHeaders]
[AllowAnonymous]
public class Index : PageModel
{
private readonly UserManager<ApplicationUser> _userManager;
public Index(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
[BindProperty]
public RegisterViewModel Input { get; set; }
[BindProperty]
public bool RegisterSuccess { get; set; }
public IActionResult OnGet(string returnUrl)
{
Input = new RegisterViewModel
{
ReturnUrl = returnUrl,
};
return Page();
}
public async Task<IActionResult> OnPost()
{
if (Input.Button != "register") return Redirect("~/");
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = Input.Username,
Email = Input.Email,
EmailConfirmed = true,
};
var result = await _userManager.CreateAsync(user, Input.Password);
if (result.Succeeded)
{
await _userManager.AddClaimsAsync(user, new Claim[]
{
new Claim(JwtClaimTypes.Name, Input.FullName)
});
RegisterSuccess = true;
}
}
return Page();
}
}

@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace IdentitySvc.Pages.Register;
public class RegisterViewModel
{
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
[Required]
public string Username { get; set; }
[Required]
public string FullName { get; set; }
public string ReturnUrl { get; set; }
public string Button { get; set; }
}

@ -13,7 +13,7 @@
<a href="~/" class="navbar-brand">
<img src="~/duende-logo.svg" class="icon-banner">
Duende IdentityServer
Optifit Identity SSO
</a>
@if (!string.IsNullOrWhiteSpace(name))

Loading…
Cancel
Save