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
}
}