+ Umbraco
+ Enter your two-factor authentication code
+
+ @if (hasError)
+ {
+ @Model!.ErrorMessage
+ }
+
+
+
+
+
+
diff --git a/src/Umbraco.Cms.StaticAssets/wwwroot/umbraco/basic-auth/login.js b/src/Umbraco.Cms.StaticAssets/wwwroot/umbraco/basic-auth/login.js
new file mode 100644
index 000000000000..4b789ca610ac
--- /dev/null
+++ b/src/Umbraco.Cms.StaticAssets/wwwroot/umbraco/basic-auth/login.js
@@ -0,0 +1,11 @@
+document.addEventListener("DOMContentLoaded", function () {
+ document.querySelectorAll("form").forEach(function (form) {
+ form.addEventListener("submit", function () {
+ var btn = form.querySelector(".btn");
+ if (btn && btn.dataset.submittingText) {
+ btn.disabled = true;
+ btn.textContent = btn.dataset.submittingText;
+ }
+ });
+ });
+});
diff --git a/src/Umbraco.Core/Configuration/Models/BasicAuthSettings.cs b/src/Umbraco.Core/Configuration/Models/BasicAuthSettings.cs
index 4944a84fae43..8793454e3178 100644
--- a/src/Umbraco.Core/Configuration/Models/BasicAuthSettings.cs
+++ b/src/Umbraco.Core/Configuration/Models/BasicAuthSettings.cs
@@ -12,6 +12,8 @@ namespace Umbraco.Cms.Core.Configuration.Models;
public class BasicAuthSettings
{
private const bool StaticEnabled = false;
+ private const string StaticLoginViewPath = "/umbraco/BasicAuthLogin/Login.cshtml";
+ private const string StaticTwoFactorViewPath = "/umbraco/BasicAuthLogin/TwoFactor.cshtml";
///