Install any skill in seconds. Free to start, no credit card required.
Get Started Free →fritzandfriends/bwfc-identity-migration
**WORKFLOW SKILL** — Migrate ASP.NET Web Forms Identity and Membership authentication to Blazor Server Identity. Covers OWIN→Core middleware, login/register/logout minimal API endpoints, BWFC login controls, cookie auth under Interactive Server, and role-based authorization. WHEN: "migrate identity", "login page migration", "OWIN to core", "cookie auth blazor", "LoginView migration". INVOKES: dotnet CLI for identity scaffolding. FOR SINGLE OPERATIONS: use bwfc-migration for markup, bwfc-data-mig
Passed 22 of 22 test cases with the skill, and 12 of 22 without it.
and 11 more in the full report
10 fixed12 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
We have <asp:LoginStatus LogoutAction="Redirect" LogoutPageUrl="~/" /> in our master page header. How is this control represented in Blazor using Web Forms component shims?
| Checked | Without skill | With skill |
|---|---|---|
| Recommends using <LoginStatus LogoutAction="Redirect" LogoutPageUrl="/" /> in the Blazor markup. | Missed | Passed |
The instructions your model reads when the skill loads.
| Web Forms Auth System | Era | Blazor Migration Path |
|---|---|---|
| ASP.NET Identity (OWIN) | 2013+ | ASP.NET Core Identity (closest match) |
| ASP.NET Membership | 2005-2013 | Core Identity (schema migration required) |
| FormsAuthentication | 2002-2005 | Core Identity or cookie auth |
Related: /bwfc-migration (markup), /bwfc-data-migration (EF/architecture)
<form method="post"> + minimal API endpoints. Component event handlers (@onclick) silently fail for cookie operations in interactive mode.LoginView uses AuthenticationStateProvider natively with same template names (AnonymousTemplate, LoggedInTemplate)..DisableAntiforgery().Session["key"] via WebFormsPageBase.Session / SessionShim. Don't inject IHttpContextAccessor.<Login />, <LoginName />, <LoginStatus />, <LoginView>, <CreateUserWizard />, <ChangePassword />, <PasswordRecovery />
// Program.cs — login via HTTP POST (required for cookie auth)
app.MapPost("/Account/LoginHandler", async (HttpContext ctx, SignInManager<IdentityUser> sm) =>
{
var form = await ctx.Request.ReadFormAsync();
var result = await sm.PasswordSignInAsync(form["email"]!, form["password"]!, false, false);
return result.Succeeded ? Results.Redirect("/") : Results.Redirect("/Account/Login?error=failed");
}).DisableAntiforgery();
| Document | Content |
test cases passed, vs 12 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.