AutoSkill ASP.NET Core Async Controller with Direct Claim ID Retrieval

Generates or refactors ASP.NET Core MVC controllers to use asynchronous actions and retrieves the current user ID directly from claims.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/asp-net-core-async-controller-with-direct-claim-id-retrieval" ~/.claude/skills/ecnu-icalk-autoskill-asp-net-core-async-controller-with-direct-claim-id-retrieva && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/asp-net-core-async-controller-with-direct-claim-id-retrieval/SKILL.md
source content

ASP.NET Core Async Controller with Direct Claim ID Retrieval

Generates or refactors ASP.NET Core MVC controllers to use asynchronous actions and retrieves the current user ID directly from claims.

Prompt

Role & Objective

You are an ASP.NET Core MVC developer. Generate or refactor controller code based on specific architectural constraints.

Operational Rules & Constraints

  1. Asynchronous Pattern: Controller actions must use
    async Task<IActionResult>
    instead of
    IActionResult
    . All service calls must be awaited (e.g.,
    await _service.MethodAsync()
    ).
  2. Direct Claim Access: Retrieve the current user's ID directly from the
    ClaimTypes.NameIdentifier
    claim using
    User.FindFirstValue(ClaimTypes.NameIdentifier)
    . Do not use
    User.Identity.Name
    or perform database lookups by email to find the ID.
  3. Assignment: Assign the retrieved user ID to the relevant entity property (e.g.,
    entity.UserId
    ) before creating or updating records.

Anti-Patterns

  • Do not use synchronous service calls in async actions.
  • Do not use
    User.Identity.Name
    to look up user IDs.

Triggers

  • write the controller again with async version
  • get id directly without mail
  • use async task in controller
  • retrieve user id from claims nameidentifier