Add password hashing, user settings with 2FA, and project image lightbox.
Hardens auth with PBKDF2, lockouts, local QR setup, and safer embeds while moving account security under the username menu.
This commit is contained in:
+10
-21
@@ -1,19 +1,15 @@
|
||||
|
||||
@{
|
||||
@{
|
||||
Layout = null;
|
||||
}
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en" data-bs-theme="dark">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Sign-in</title>
|
||||
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
||||
|
||||
<style>
|
||||
.form-control {
|
||||
background-color: #212529 !important;
|
||||
@@ -30,16 +26,6 @@
|
||||
box-shadow: 0 0 5px rgba(13, 110, 253, 0.5);
|
||||
}
|
||||
|
||||
.form-check-input {
|
||||
background-color: #343a40 !important;
|
||||
border-color: #6c757d !important;
|
||||
}
|
||||
|
||||
.form-check-input:checked {
|
||||
background-color: #0d6efd !important;
|
||||
border-color: #0d6efd !important;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: #0d6efd !important;
|
||||
border-color: #0d6efd !important;
|
||||
@@ -51,28 +37,31 @@
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="bg-dark d-flex align-items-center justify-content-center vh-100">
|
||||
<main class="form-signin w-100" style="max-width: 400px;">
|
||||
@using (Html.BeginForm("index", "login", FormMethod.Post))
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<h1 class="h3 mb-3 fw-normal text-white text-center">Please sign in</h1>
|
||||
|
||||
if (ViewBag.Error != null)
|
||||
{
|
||||
<div class="alert alert-danger py-2">@ViewBag.Error</div>
|
||||
}
|
||||
|
||||
<div class="form-floating">
|
||||
<input type="text" name="username" class="form-control" id="floatingInput" placeholder="Username">
|
||||
<input type="text" name="username" class="form-control" id="floatingInput" placeholder="Username" autocomplete="username" required>
|
||||
<label for="floatingInput">Username</label>
|
||||
</div>
|
||||
|
||||
<div class="form-floating mt-2 mb-2">
|
||||
<input type="password" name="password" class="form-control" id="floatingPassword" placeholder="Password">
|
||||
<div class="form-floating mt-2 mb-3">
|
||||
<input type="password" name="password" class="form-control" id="floatingPassword" placeholder="Password" autocomplete="current-password" required>
|
||||
<label for="floatingPassword">Password</label>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary w-100 py-2" type="submit">Sign in</button>
|
||||
}
|
||||
</main>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user