Files
QuantEngineByItz/src/dotnet/QuantEngine.sln
T
kjh2064 c57ad182b0 feat: Migrate admin UI from Blazor WASM/MudBlazor to Razor Pages/Cookie Auth/Tabler
- Remove QuantEngine.Web.Client from .sln (keep on disk for reference)
- Replace Blazor Interactive WebAssembly with server-rendered Razor Pages
- Implement Cookie Authentication (HttpOnly, SameSite=Lax, 12h expiry)
- Add AuthService with BCrypt password hashing + auto-migration from SHA-256
- Implement IpLockoutService (3 strikes → 15-min ban)
- Create Admin folder structure with Layout + shared partials
- Implement Dashboard, Collection, Users index pages (base structure)
- Remove hardcoded backdoors (master_recovery, dev auth bypass)
- Remove hardcoded localhost:5265 URLs
- Add Tabler UI base styling (Bootstrap 5 CDN + custom admin.css)
- Update CLAUDE.md with new UI standards and auth policies
- Build: 0 errors, 0 warnings (ready for dev testing)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-11 16:57:41 +09:00

106 lines
7.2 KiB
Plaintext

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuantEngine.Core", "QuantEngine.Core\QuantEngine.Core.csproj", "{F95F4420-A82D-4FC4-881C-BFAB04A5280D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuantEngine.Application", "QuantEngine.Application\QuantEngine.Application.csproj", "{81CE989D-52D2-4375-930F-485CE6BA5006}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuantEngine.Infrastructure", "QuantEngine.Infrastructure\QuantEngine.Infrastructure.csproj", "{123C963B-C447-4253-9A4B-6A8F9048F5E0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuantEngine.Web", "QuantEngine.Web\QuantEngine.Web.csproj", "{15F27C9D-077F-4788-9F6A-88092BEA1814}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuantEngine.Core.Tests", "QuantEngine.Core.Tests\QuantEngine.Core.Tests.csproj", "{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuantEngine.Tools", "QuantEngine.Tools\QuantEngine.Tools.csproj", "{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Debug|x64.ActiveCfg = Debug|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Debug|x64.Build.0 = Debug|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Debug|x86.ActiveCfg = Debug|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Debug|x86.Build.0 = Debug|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Release|Any CPU.Build.0 = Release|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Release|x64.ActiveCfg = Release|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Release|x64.Build.0 = Release|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Release|x86.ActiveCfg = Release|Any CPU
{F95F4420-A82D-4FC4-881C-BFAB04A5280D}.Release|x86.Build.0 = Release|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Debug|Any CPU.Build.0 = Debug|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Debug|x64.ActiveCfg = Debug|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Debug|x64.Build.0 = Debug|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Debug|x86.ActiveCfg = Debug|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Debug|x86.Build.0 = Debug|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Release|Any CPU.ActiveCfg = Release|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Release|Any CPU.Build.0 = Release|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Release|x64.ActiveCfg = Release|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Release|x64.Build.0 = Release|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Release|x86.ActiveCfg = Release|Any CPU
{81CE989D-52D2-4375-930F-485CE6BA5006}.Release|x86.Build.0 = Release|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Debug|x64.ActiveCfg = Debug|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Debug|x64.Build.0 = Debug|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Debug|x86.ActiveCfg = Debug|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Debug|x86.Build.0 = Debug|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Release|Any CPU.Build.0 = Release|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Release|x64.ActiveCfg = Release|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Release|x64.Build.0 = Release|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Release|x86.ActiveCfg = Release|Any CPU
{123C963B-C447-4253-9A4B-6A8F9048F5E0}.Release|x86.Build.0 = Release|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Debug|x64.ActiveCfg = Debug|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Debug|x64.Build.0 = Debug|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Debug|x86.ActiveCfg = Debug|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Debug|x86.Build.0 = Debug|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Release|Any CPU.Build.0 = Release|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Release|x64.ActiveCfg = Release|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Release|x64.Build.0 = Release|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Release|x86.ActiveCfg = Release|Any CPU
{15F27C9D-077F-4788-9F6A-88092BEA1814}.Release|x86.Build.0 = Release|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Debug|x64.ActiveCfg = Debug|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Debug|x64.Build.0 = Debug|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Debug|x86.ActiveCfg = Debug|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Debug|x86.Build.0 = Debug|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Release|Any CPU.Build.0 = Release|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Release|x64.ActiveCfg = Release|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Release|x64.Build.0 = Release|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Release|x86.ActiveCfg = Release|Any CPU
{92E27E2B-6DA9-4D7C-9DC7-5FBDAF4F69B9}.Release|x86.Build.0 = Release|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Debug|x64.ActiveCfg = Debug|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Debug|x64.Build.0 = Debug|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Debug|x86.ActiveCfg = Debug|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Debug|x86.Build.0 = Debug|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Release|Any CPU.Build.0 = Release|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Release|x64.ActiveCfg = Release|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Release|x64.Build.0 = Release|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Release|x86.ActiveCfg = Release|Any CPU
{E2B1A0A1-7B13-4A4D-9B31-9C7F4F27A6A1}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal