招生计划、资格、录取、分数线及报到公示

成绩单 HMAC 防伪验真
录取通知书 HMAC 防伪验真
防伪码常量时间比较
生产环境文书密钥强度检查
旧文书防伪码完全兼容
This commit is contained in:
2026-07-22 19:12:38 +08:00 Unverified
parent 38e42ad734
commit 017cacc6f9
14 changed files with 824 additions and 6 deletions
+4 -1
View File
@@ -3,6 +3,7 @@ using Eis.Application.Public;
using Eis.Infrastructure;
using Eis.Infrastructure.Data;
using Eis.Infrastructure.Migration;
using Eis.Infrastructure.Security;
using Eis.Web.Configuration;
using Eis.Web.Frontend;
using Eis.Web.Legacy;
@@ -28,7 +29,9 @@ builder.Services.AddHttpClient<LegacyApiProxy>((services, client) =>
});
builder.Services.AddProblemDetails();
builder.Services.AddSingleton<IPublicSiteConfiguration, PublicSiteConfiguration>();
builder.Services.AddEisInfrastructure(DatabaseOptions.FromEnvironment(applicationRoot, builder.Environment.IsProduction()));
builder.Services.AddEisInfrastructure(
DatabaseOptions.FromEnvironment(applicationRoot, builder.Environment.IsProduction()),
DocumentVerificationOptions.FromEnvironment(builder.Environment.IsProduction()));
var app = builder.Build();
+22
View File
@@ -28,6 +28,28 @@ public static class PublicEndpoints
: Results.Json(new { ok = true, notice });
});
endpoints.MapGet("/api/public/announcements", async (
HttpContext context,
IPublicQueryService queries,
CancellationToken cancellationToken) =>
{
context.Response.Headers["X-EIS-Implementation"] = "aspnet-core";
return Results.Json(await queries.GetAnnouncementsAsync(cancellationToken));
});
endpoints.MapGet("/api/public/verifications/{code}", async (
string code,
HttpContext context,
IPublicQueryService queries,
CancellationToken cancellationToken) =>
{
context.Response.Headers["X-EIS-Implementation"] = "aspnet-core";
var verification = await queries.VerifyDocumentAsync(code, cancellationToken);
return verification is null
? Results.Json(new { ok = false, message = "未查询到有效文书,请核对防伪码" }, statusCode: StatusCodes.Status404NotFound)
: Results.Json(verification);
});
return endpoints;
}
}