Security defaults that belong in every ASP.NET Core application from day one.
87
83%
Does it follow best practices?
Impact
94%
1.91xAverage score across 5 eval scenarios
Passed
No known issues
A project management startup needs a task tracking API built with ASP.NET Core and C#. A Blazor WebAssembly frontend on https://tasks.example.com will consume this API. Team members can create projects, add tasks, and assign them to each other.
The API needs the following endpoints:
POST /api/projects -- create a new project (accepts name, description)GET /api/projects -- list projects the current user belongs toGET /api/projects/{id} -- get project details including task summaryPOST /api/projects/{id}/tasks -- create a task in a project (accepts title, description, priority, assigneeId, dueDate)GET /api/projects/{id}/tasks -- list tasks in a project (supports ?status=open&priority=high&assignee=me)PATCH /api/projects/{projectId}/tasks/{taskId} -- update a task (change status, reassign, update fields)DELETE /api/projects/{projectId}/tasks/{taskId} -- delete a task (project owner only)Use an in-memory data store. Projects have Id, Name, Description, OwnerId, MemberIds, CreatedAt. Tasks have Id, ProjectId, Title, Description, Priority (Low, Medium, High, Critical), Status (Open, InProgress, Done, Closed), AssigneeId, CreatorId, DueDate, CreatedAt, UpdatedAt.
Produce:
Program.cs -- Application setup with services and middlewareControllers/ProjectsController.cs -- Project management endpointsControllers/TasksController.cs -- Task CRUD endpointsModels/ -- Request/response DTOs and entitiesServices/ProjectService.cs -- Project and task business logicappsettings.json -- ConfigurationTaskTracker.csproj -- Project file with NuGet packagesevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
skills
aspnet-security-basics
verifiers