[Authorize]-Attribut zu DocumentController und EnvelopeController hinzugefügt

[Authorize]-Attribute wurden zum DocumentController und EnvelopeController hinzugefügt, um die Sicherheit zu erhöhen. [NonAction]-Attribute wurden zu den Methoden DocumentController.Get (api/document/{envelopeKey}) und EnvelopeController.Get (api/envelope/{envelopeKey}) hinzugefügt, um redundante Cookie-basierte Authentifizierung zu vermeiden, da der Datenzugriffscode korrekt gehandhabt wird, nachdem er im HomeController.LogInEnvelope (/EnvelopeKey/{envelopeReceiverId}/Locked) über die entsprechende Razor-Seite (.cshtml) eingegeben wurde.
This commit is contained in:
Developer 02 2024-04-16 13:28:52 +02:00
parent 1c55c4aa99
commit 23609d2bd7
5 changed files with 9 additions and 5 deletions

View File

@ -5,7 +5,6 @@ namespace EnvelopeGenerator.Web.Controllers
{ {
public static class ControllerBaseExtensions public static class ControllerBaseExtensions
{ {
public static (string EnvelopeUuid, string ReceiverSignature)? GetAuthenticatedEnvelopeDetails(this ControllerBase controller) public static (string EnvelopeUuid, string ReceiverSignature)? GetAuthenticatedEnvelopeDetails(this ControllerBase controller)
{ {
if(controller?.User?.Identity?.IsAuthenticated ?? false) if(controller?.User?.Identity?.IsAuthenticated ?? false)

View File

@ -2,9 +2,11 @@
using EnvelopeGenerator.Common; using EnvelopeGenerator.Common;
using EnvelopeGenerator.Web.Services; using EnvelopeGenerator.Web.Services;
using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.Contracts;
using Microsoft.AspNetCore.Authorization;
namespace EnvelopeGenerator.Web.Controllers namespace EnvelopeGenerator.Web.Controllers
{ {
[Authorize]
public class DocumentController : BaseController public class DocumentController : BaseController
{ {
private readonly EnvelopeOldService envelopeService; private readonly EnvelopeOldService envelopeService;
@ -18,6 +20,7 @@ namespace EnvelopeGenerator.Web.Controllers
_envDocService = envDocService; _envDocService = envDocService;
} }
[NonAction]
[HttpGet] [HttpGet]
[Route("api/document/{envelopeKey}")] [Route("api/document/{envelopeKey}")]
public async Task<IActionResult> Get([FromRoute] string envelopeKey, [FromQuery] int index) public async Task<IActionResult> Get([FromRoute] string envelopeKey, [FromQuery] int index)

View File

@ -2,10 +2,12 @@
using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.Contracts;
using EnvelopeGenerator.Common; using EnvelopeGenerator.Common;
using EnvelopeGenerator.Web.Services; using EnvelopeGenerator.Web.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Web.Controllers namespace EnvelopeGenerator.Web.Controllers
{ {
[Authorize]
public class EnvelopeController : BaseController public class EnvelopeController : BaseController
{ {
private readonly EnvelopeOldService envelopeService; private readonly EnvelopeOldService envelopeService;
@ -19,6 +21,7 @@ namespace EnvelopeGenerator.Web.Controllers
_envelopeService = envService; _envelopeService = envService;
} }
[NonAction]
[HttpGet("api/envelope/{envelopeKey}")] [HttpGet("api/envelope/{envelopeKey}")]
public async Task<IActionResult> Get([FromRoute] string envelopeKey) public async Task<IActionResult> Get([FromRoute] string envelopeKey)
{ {

View File

@ -28,7 +28,6 @@
<summary>Show envelopes</summary> <summary>Show envelopes</summary>
@foreach (Envelope envelope in @group) @foreach (Envelope envelope in @group)
{ {
<section> <section>
<article class="envelope"> <article class="envelope">
<strong><a href="/EnvelopeKey/@encodeEnvelopeKey(envelope)">@envelope.Title</a></strong> <strong><a href="/EnvelopeKey/@encodeEnvelopeKey(envelope)">@envelope.Title</a></strong>
@ -44,5 +43,4 @@
</section> </section>
} }
</section> </section>
</div> </div>

View File

@ -14,4 +14,5 @@
"description": [ "Diese Cookies sind notwendig für Funktionen wie Seitensicherheit, Sitzungsverwaltung und Schutz. Unsere Cookies umfassen technische Cookies, die für die Sitzungsverwaltung und zur Gewährleistung der Sicherheit verwendet werden." ] "description": [ "Diese Cookies sind notwendig für Funktionen wie Seitensicherheit, Sitzungsverwaltung und Schutz. Unsere Cookies umfassen technische Cookies, die für die Sitzungsverwaltung und zur Gewährleistung der Sicherheit verwendet werden." ]
} }
} }
} }