diff --git a/packages/fx-core/src/component/generator/templates/ssrTabGenerator.ts b/packages/fx-core/src/component/generator/templates/ssrTabGenerator.ts index 32ba3509ff..0cc54ed031 100644 --- a/packages/fx-core/src/component/generator/templates/ssrTabGenerator.ts +++ b/packages/fx-core/src/component/generator/templates/ssrTabGenerator.ts @@ -6,6 +6,7 @@ import { CapabilityOptions, ProgrammingLanguage, QuestionNames } from "../../../ import { DefaultTemplateGenerator } from "./templateGenerator"; import { TemplateInfo } from "./templateInfo"; import { TemplateNames } from "./templateNames"; +import { Generator } from "../generator"; // For the APS.NET server-side rendering tab export class SsrTabGenerator extends DefaultTemplateGenerator { @@ -27,11 +28,25 @@ export class SsrTabGenerator extends DefaultTemplateGenerator { inputs: Inputs, destinationPath: string ): Promise> { + const appName = inputs[QuestionNames.AppName]; + const safeProjectNameFromVS = inputs[QuestionNames.SafeProjectName]; + const isNet8 = inputs.targetFramework === "net8.0"; + const replaceMap = { + ...Generator.getDefaultVariables( + appName, + safeProjectNameFromVS, + inputs.targetFramework, + inputs.placeProjectFileInSolutionDir === "true" + ), + IsNet8Framework: isNet8 ? "true" : "", + }; + return Promise.resolve( ok([ { templateName: this.capabilities2TemplateNames[inputs.capabilities as string], language: ProgrammingLanguage.CSharp, + replaceMap, }, ]) ); diff --git a/packages/fx-core/tests/component/generator/templateGenerator.test.ts b/packages/fx-core/tests/component/generator/templateGenerator.test.ts index fcd4e7a70a..157c7c6d80 100644 --- a/packages/fx-core/tests/component/generator/templateGenerator.test.ts +++ b/packages/fx-core/tests/component/generator/templateGenerator.test.ts @@ -51,6 +51,14 @@ describe("TemplateGenerator", () => { }, TemplateNames.Tab, ], + [ + { + [QuestionNames.Capabilities]: CapabilityOptions.tab().id, + [QuestionNames.ProgrammingLanguage]: ProgrammingLanguage.CSharp, + targetFramework: "net9.0", + }, + TemplateNames.SsoTabSSR, + ], ]); setTools(new MockTools()); diff --git a/templates/csharp/sso-tab-ssr/Program.cs.tpl b/templates/csharp/sso-tab-ssr/Program.cs.tpl index d82de5b2b0..c8e7d8ca6e 100644 --- a/templates/csharp/sso-tab-ssr/Program.cs.tpl +++ b/templates/csharp/sso-tab-ssr/Program.cs.tpl @@ -36,7 +36,13 @@ app.UseAntiforgery(); app.UseAuthentication(); app.UseAuthorization(); +{{#IsNet8Framework}} app.MapRazorComponents() .AddInteractiveServerRenderMode(); +{{/IsNet8Framework}} +{{^IsNet8Framework}} +app.MapRazorComponents() + .AddInteractiveServerRenderMode(o => o.ContentSecurityFrameAncestorsPolicy = "'self' *"); +{{/IsNet8Framework}} app.Run(); \ No newline at end of file