From 8e0a380deace174c4327ad85bf6c19143d7488a5 Mon Sep 17 00:00:00 2001 From: danial23 Date: Tue, 20 May 2025 11:49:59 -0400 Subject: [PATCH] Add AccessDenied page --- CSR.WebUI/Pages/AccessDenied.cshtml | 11 +++++++++++ CSR.WebUI/Pages/AccessDenied.cshtml.cs | 25 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 CSR.WebUI/Pages/AccessDenied.cshtml create mode 100644 CSR.WebUI/Pages/AccessDenied.cshtml.cs diff --git a/CSR.WebUI/Pages/AccessDenied.cshtml b/CSR.WebUI/Pages/AccessDenied.cshtml new file mode 100644 index 0000000..1d93fdf --- /dev/null +++ b/CSR.WebUI/Pages/AccessDenied.cshtml @@ -0,0 +1,11 @@ +@page +@model CSR.WebUI.Pages.AccessDeniedModel +@{ + ViewData["Title"] = "Access Denied"; +} + +
+

Access Denied

+

You do not have permission to access @Model.ResourceName.

+

If you believe this is an error, please contact your administrator.

+
diff --git a/CSR.WebUI/Pages/AccessDenied.cshtml.cs b/CSR.WebUI/Pages/AccessDenied.cshtml.cs new file mode 100644 index 0000000..1fc97f3 --- /dev/null +++ b/CSR.WebUI/Pages/AccessDenied.cshtml.cs @@ -0,0 +1,25 @@ +namespace CSR.WebUI.Pages; + +using Microsoft.AspNetCore.Mvc.RazorPages; +using System.Web; + +public class AccessDeniedModel : PageModel +{ + public string ResourceName { get; set; } = "the requested resource"; // Default message + + public void OnGet(string returnUrl) + { + if (!string.IsNullOrEmpty(returnUrl)) + { + // Decode the URL if it was encoded + var decodedUrl = HttpUtility.UrlDecode(returnUrl); + + var uri = new Uri("http://localhost" + decodedUrl); // Use a base URI to help with parsing + ResourceName = uri.Segments.Length > 1 ? uri.Segments.Last() : "the requested resource"; + if (string.IsNullOrEmpty(ResourceName)) + { + ResourceName = "the requested resource"; + } + } + } +}