D_Inventor
07/17/2024, 1:58 PMPOST: /api/{channel}/messages/create[UmbracoMemberAuthorize]D_Inventor
07/18/2024, 7:07 AMClaims transformercsharp
public class IntranetContextualClaimsTransformer(IHttpContextAccessor httpContextAccessor)
    : IClaimsTransformation
{
    public Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal principal)
    {
        var httpContext = httpContextAccessor.GetRequiredHttpContext();
        if (httpContext.Request.RouteValues.TryGetValue("group", out var groupValue)
            && string.Equals(groupValue?.ToString(), "1233", StringComparison.Ordinal))
        {
            var identity = (ClaimsIdentity)principal.Identity;
            identity.AddClaim(new Claim(ClaimTypes.Role, "resource.read"));
        }
        return Task.FromResult(principal);
    }
}csharp
[ApiController]
[Route("/api/{group:int}/[controller]/[action]")]
[UmbracoMemberAuthorize]
[Authorize(Roles = "resource.read")]
public class IntranetTestApiController
    : UmbracoApiController
{
    public IActionResult Get([FromRoute] int group)
    {
        return Ok(group);
    }
}resource.readD_Inventor
07/18/2024, 7:31 AMD_Inventor
07/18/2024, 8:54 AMIdentityConstants.ApplicationSchemeConfigureMemberCookieOptionsUmbracoApiControllerX-Requested-WithControllerX-Requested-With: XMLHttpRequestD_Inventor
07/18/2024, 8:55 AMcsharp
public class IntranetContextualClaimsTransformer(IHttpContextAccessor httpContextAccessor)
        : IClaimsTransformation
{
    public Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal principal)
    {
        var httpContext = httpContextAccessor.GetRequiredHttpContext();
        if (httpContext.Request.RouteValues.TryGetValue("group", out var groupValue)
            && string.Equals(groupValue?.ToString(), "1233", StringComparison.Ordinal))
        {
            var identity = (ClaimsIdentity)principal.Identity;
            identity.AddClaim(new Claim(ClaimTypes.Role, "resource.read"));
        }
        return Task.FromResult(principal);
    }
}csharp
[ApiController]
[Route("/api/{group:int}/[controller]/[action]")]
[UmbracoMemberAuthorize]
[Authorize(Roles = "resource.read")]
public class IntranetTestApiController
    : Controller
{
    public IActionResult Get([FromRoute] int group)
    {
        return Ok(group);
    }
}D_Inventor
07/18/2024, 10:44 AM[UmbracoMemberAuthorize]D_Inventor
07/18/2024, 10:45 AM