Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Authentication: Viewmodels */
- public class VMChangePassword
- {
- [DisplayName("User name")]
- public string Username { get; set; }
- [DisplayName("Password")]
- public string Password { get; set; }
- [DisplayName("Confirm Password")]
- public string Password2 { get; set; }
- }
- public class VMLogin
- {
- [DisplayName("User name")]
- public string Username { get; set; }
- [DisplayName("Password")]
- public string Password { get; set; }
- [DisplayName("Stay Signed-in")]
- public bool StaySignedIn { get; set; }
- public string? RedirectUrl { get; set; }
- }
- public class VMRegister
- {
- [DisplayName("User name")]
- public string Username { get; set; }
- [DisplayName("E-mail")]
- public string Email { get; set; }
- [DisplayName("Confirm e-mail")]
- public string Email2 { get; set; }
- [DisplayName("First name")]
- public string FirstName { get; set; }
- [DisplayName("Last name")]
- public string LastName { get; set; }
- [DisplayName("Password")]
- public string Password { get; set; }
- [DisplayName("Repeat password")]
- public string Password2 { get; set; }
- }
- public class VMValidateEmail
- {
- public string Email { get; set; }
- public string SecurityToken { get; set; }
- }
- /* Authentication: index action */
- public IActionResult Index()
- {
- return View();
- }
- /* Authentication: Index.cshtml view */
- <a asp-action="register" class="btn btn-outline-primary">Register</a>
- <a asp-action="validateEmail" asp-route-email="test@test.info" class="btn btn-outline-primary">Validate E-mail</a>
- <a asp-action="login" class="btn btn-outline-primary">Login</a>
- <form asp-action="logout">
- <button type="submit" class="btn btn-outline-primary">Logout</button>
- </form>
- <a asp-action="changepassword" class="btn btn-outline-primary">Change Password</a>
- /* Authentication: register actions */
- public IActionResult Register()
- {
- return View();
- }
- [HttpPost]
- public IActionResult Register(VMRegister register)
- {
- if(!ModelState.IsValid)
- return View(register);
- // TODO: Save user to database
- return RedirectToAction("Index");
- }
- /* Authentication: Register.cshtml view */
- @using Task12.Models.User;
- @model VMRegister
- @{
- }
- <form asp-action="Register">
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Username" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="text" asp-for="Username" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Username" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Email" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="text" asp-for="Email" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Email" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Email2" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="text" asp-for="Email2" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Email2" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="FirstName" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="text" asp-for="FirstName" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="FirstName" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="LastName" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="text" asp-for="LastName" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="LastName" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Password" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="password" asp-for="Password" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Password" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Password2" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="password" asp-for="Password2" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Password2" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3">
- <div class="col-2"></div>
- <div class="col-3">
- <input type="submit" value="Register" class="btn btn-primary" />
- </div>
- </div>
- </form>
- @section Scripts {
- @{
- await Html.RenderPartialAsync("_ValidationScriptsPartial");
- }
- }
- /* Authentication: validate e-mail action */
- public IActionResult ValidateEmail(VMValidateEmail validateEmail)
- {
- // TODO: Update user: e-mail validated
- return View(validateEmail);
- }
- /* Authentication: ValidateEmail.cshtml view */
- @using Task12.Models.User;
- @model VMValidateEmail
- @{
- }
- <h2>Thank you @Model?.Email</h2>
- <div>Your e-mail has been validated. You may login now.</div>
- /* Authentication: login actions */
- public IActionResult Login()
- {
- return View();
- }
- [HttpPost]
- public IActionResult Login(VMLogin login)
- {
- if (!ModelState.IsValid)
- return View(login);
- // TODO: Check user credentials
- if(login.RedirectUrl != null)
- return Redirect(login.RedirectUrl);
- else
- return RedirectToAction("Login");
- }
- /* Authentication: Login.cshtml view */
- @using Task12.Models.User;
- @model VMLogin
- @{
- }
- <form asp-action="Login">
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Username" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="text" asp-for="Username" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Username" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Password" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="password" asp-for="Password" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Password" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="StaySignedIn" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <div class="form-check form-switch">
- <input type="checkbox" asp-for="StaySignedIn" class="form-check-input">
- </div>
- </div>
- <div class="col-3">
- </div>
- </div>
- <div class="row g-3">
- <div class="col-2"></div>
- <div class="col-3">
- <input type="hidden" asp-for="RedirectUrl" class="form-check-input">
- <input type="submit" value="Login" class="btn btn-primary" />
- </div>
- </div>
- </form>
- @section Scripts {
- @{
- await Html.RenderPartialAsync("_ValidationScriptsPartial");
- }
- }
- /* Authentication: logout action */
- [HttpPost]
- public IActionResult Logout()
- {
- if (!ModelState.IsValid)
- return View();
- // TODO: Logout user
- return RedirectToAction("Login");
- }
- /* Authentication: change password actions */
- public IActionResult ChangePassword()
- {
- return View();
- }
- [HttpPost]
- public IActionResult ChangePassword(VMChangePassword changePassword)
- {
- if (!ModelState.IsValid)
- return View(changePassword);
- // TODO: Change user password
- return RedirectToAction("Index");
- }
- /* Authentication: ChangePassword.cshtml view */
- @using Task12.Models.User;
- @model VMChangePassword
- @{
- }
- <form asp-action="ChangePassword">
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Username" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="text" asp-for="Username" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Username" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Password" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="password" asp-for="Password" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Password" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3 align-items-center">
- <div class="col-2">
- <label asp-for="Password2" class="col-form-label"></label>
- </div>
- <div class="col-3">
- <input type="password" asp-for="Password2" class="form-control">
- </div>
- <div class="col-3">
- <span asp-validation-for="Password2" class="text-danger"></span>
- </div>
- </div>
- <div class="row g-3">
- <div class="col-2"></div>
- <div class="col-3">
- <input type="submit" value="Change password" class="btn btn-primary" />
- </div>
- </div>
- </form>
- @section Scripts {
- @{
- await Html.RenderPartialAsync("_ValidationScriptsPartial");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement