using System.Linq; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using xIdentityHelper; using xCommons.Attributes; using static IdentityServer4.IdentityServerConstants; namespace xIds.Controllers { public partial class AccountController { // #region Test Actions ... /// /// API Read Scope /// /// string message [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpGet("Test/PassReadAccess")] [Authorize(Policy = XPolicies.ReadAccess)] public ActionResult PassReadAccess() { return Ok("Read Access Passed ..."); } /// /// API Write Scope /// /// string message [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpGet("Test/PassWriteAccess")] [Authorize(Policy = XPolicies.WriteAccess)] public ActionResult PassWriteAccess() { return Ok("Write Access Passed ..."); } /// /// API Admin Scope /// /// string message [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpGet("Test/PassAdminAccess")] [Authorize(Policy = XPolicies.AdminAccess)] public ActionResult PassAdminAccess() { return Ok("Admin Access Passed ..."); } /// /// API Manage Scop /// /// string message [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpGet("Test/PassManageAccess")] [Authorize(Policy = XPolicies.ManageAccess)] public ActionResult PassManageAccess() { return Ok("Manage Access Passed ..."); } /// /// a simple Action which returns a List of Authenticated User Claims /// /// string message which represent current user's claims [RequireXPowered] [HttpGet("Test/HiClaims")] [Authorize(LocalApi.PolicyName)] [Authorize(Policy = XPolicies.User)] public ActionResult HiClaims() { // var result = new { name = User.Identity.Name, claims = User.Claims.Select(c => new { c.Type, c.Value }) }; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [RequireXPowered] [HttpGet("Test/HiUser")] [Authorize(LocalApi.PolicyName)] [Authorize(Policy = XPolicies.User)] public ActionResult HiUser() { // var result = $"Hi User: {User.Identity.Name} ..."; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [RequireXPowered] [HttpGet("Test/HiEnabledUser")] [Authorize(LocalApi.PolicyName)] [Authorize(Policy = XPolicies.EnabledUser)] public ActionResult HiEnabledUser() { // var result = $"Hi User: {User.Identity.Name} is Enabled ..."; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [RequireXPowered] [HttpGet("Test/HiAdmin")] [Authorize(LocalApi.PolicyName)] [Authorize(Policy = XPolicies.Admin)] public ActionResult HiAdmin() { // var result = $"Hi Admin: {User.Identity.Name} ..."; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [RequireXPowered] [HttpGet("Test/HiEnabledAdmin")] [Authorize(LocalApi.PolicyName)] [Authorize(Policy = XPolicies.EnabledAdmin)] public ActionResult HiEnabledAdmin() { // var result = $"Hi Admin: {User.Identity.Name} is Enabled ..."; // return Ok(result); } #endregion } }