diff --git a/eng/Versions.props b/eng/Versions.props
index 0b3d07e2bca1375b4ad8c129206acf89de7997ff..9a60b9df15146d93d0d56dfa8fd0c9ae6410cc59 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -231,9 +231,9 @@
     <DuendeIdentityServerStorageVersion>5.2.0</DuendeIdentityServerStorageVersion>
     <DuendeIdentityServerEntityFrameworkStorageVersion>5.2.0</DuendeIdentityServerEntityFrameworkStorageVersion>
     <MessagePackVersion>2.1.90</MessagePackVersion>
-    <MicrosoftIdentityWebVersion>1.14.1</MicrosoftIdentityWebVersion>
-    <MicrosoftIdentityWebMicrosoftGraphVersion>1.1.0</MicrosoftIdentityWebMicrosoftGraphVersion>
-    <MicrosoftIdentityWebUIVersion>1.1.0</MicrosoftIdentityWebUIVersion>
+    <MicrosoftIdentityWebVersion>1.16.0</MicrosoftIdentityWebVersion>
+    <MicrosoftIdentityWebMicrosoftGraphVersion>1.16.0</MicrosoftIdentityWebMicrosoftGraphVersion>
+    <MicrosoftIdentityWebUIVersion>1.16.0</MicrosoftIdentityWebUIVersion>
     <MessagePackAnalyzerVersion>$(MessagePackVersion)</MessagePackAnalyzerVersion>
     <MoqVersion>4.10.0</MoqVersion>
     <MonoCecilVersion>0.11.2</MonoCecilVersion>
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json
index 167ea7f5e9c95301b740d75a39cdcd4e3ac0f2bf..cd44728a48949ef2fcf12764ffe39ba1e4deb17e 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json
@@ -220,6 +220,61 @@
             "Server/Models/ApplicationUser.cs",
             "Server/Readme.txt"
           ]
+        },
+        {
+          "condition": "(!GenerateApi)",
+          "exclude": [
+            "Client/Pages/CallWebApi.razor",
+            "Server/Controllers/CallWebApiController.cs"
+          ]
+        },
+        {
+          "condition": "(!GenerateGraph)",
+          "exclude": [
+            "Client/Shared/NavMenu.CallsMicrosoftGraph.razor",
+            "Client/Pages/ShowProfile.razor",
+            "Server/Controllers/ShowProfileController.cs"
+            ]
+        },
+         {
+          "condition": "(!GenerateApiOrGraph && Hosted)",
+          "rename": {
+            "Client/Shared/NavMenu.NoGraphOrApi.razor": "Client/Shared/NavMenu.razor"
+          },
+          "exclude": [
+            "Client/Shared/NavMenu.CallsMicrosoftGraph.razor",
+            "Client/Shared/NavMenu.CallsWebApi.razor"
+          ]
+        },
+        {
+          "condition": "(!GenerateApiOrGraph && !Hosted)",
+          "rename": {
+            "Client/Shared/NavMenu.NoGraphOrApi.razor": "Shared/NavMenu.razor"
+          },
+          "exclude": [
+            "Client/Shared/NavMenu.CallsMicrosoftGraph.razor",
+            "Client/Shared/NavMenu.CallsWebApi.razor"
+          ]
+        },
+        {
+          "condition": "(GenerateGraph)",
+          "rename": {
+            "Client/Shared/NavMenu.CallsMicrosoftGraph.razor": "Client/Shared/NavMenu.razor"
+          },
+          "exclude": [
+            "Client/Shared/NavMenu.NoGraphOrApi.razor",
+            "Client/Shared/NavMenu.CallsWebApi.razor"
+          ]
+        },
+        {
+          "condition": "(GenerateApi)",
+          "rename": {
+            "Client/Shared/NavMenu.CallsWebApi.razor": "Client/Shared/NavMenu.razor"
+          },
+          "exclude": [
+            "Client/Shared/NavMenu.NoGraphOrApi.razor",
+            "Client/Shared/NavMenu.CallsMicrosoftGraph.razor"
+          ]
         }
       ]
     }
@@ -527,11 +582,11 @@
     },
     "GenerateApi": {
         "type": "computed",
-        "value": "(( (IndividualB2CAuth && !Hosted) || OrganizationalAuth) && (CalledApiUrl != \"https://graph.microsoft.com/v1.0\" || CalledApiScopes != \"user.read\"))"
+        "value": "(( (IndividualB2CAuth && !Hosted) || (OrganizationalAuth && Hosted)) && (CalledApiUrl != \"https://graph.microsoft.com/v1.0\" || CalledApiScopes != \"user.read\"))"
     },
     "GenerateGraph": {
         "type": "computed",
-        "value": "(OrganizationalAuth && CallsMicrosoftGraph)"
+        "value": "(OrganizationalAuth && CallsMicrosoftGraph && Hosted)"
     },
     "GenerateApiOrGraph": {
         "type": "computed",
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.CallsMicrosoftGraph.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.CallsMicrosoftGraph.razor
new file mode 100644
index 0000000000000000000000000000000000000000..bf3861b2437ba40ce5c9ed4b71511438894d6aa7
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.CallsMicrosoftGraph.razor
@@ -0,0 +1,44 @@
+<div class="top-row ps-3 navbar navbar-dark">
+    <div class="container-fluid">
+        <a class="navbar-brand" href="">ComponentsWebAssembly-CSharp</a>
+        <button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
+            <span class="navbar-toggler-icon"></span>
+        </button>
+    </div>
+</div>
+
+<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
+    <nav class="flex-column">
+        <div class="nav-item px-3">
+            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
+                <span class="oi oi-home" aria-hidden="true"></span> Home
+            </NavLink>
+        </div>
+        <div class="nav-item px-3">
+            <NavLink class="nav-link" href="counter">
+                <span class="oi oi-plus" aria-hidden="true"></span> Counter
+            </NavLink>
+        </div>
+        <div class="nav-item px-3">
+            <NavLink class="nav-link" href="fetchdata">
+                <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
+            </NavLink>
+        </div>
+        <div class="nav-item px-3">
+            <NavLink class="nav-link" href="showProfile">
+                <span class="oi oi-list-rich" aria-hidden="true"></span> Show Profile
+            </NavLink>
+        </div>
+    </nav>
+</div>
+
+@code {
+    private bool collapseNavMenu = true;
+
+    private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
+
+    private void ToggleNavMenu()
+    {
+        collapseNavMenu = !collapseNavMenu;
+    }
+}
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.CallsWebApi.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.CallsWebApi.razor
new file mode 100644
index 0000000000000000000000000000000000000000..b15bedf508389e6935e0d9969894b8550b3c27d2
--- /dev/null
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.CallsWebApi.razor
@@ -0,0 +1,44 @@
+<div class="top-row ps-3 navbar navbar-dark">
+    <div class="container-fluid">
+        <a class="navbar-brand" href="">ComponentsWebAssembly-CSharp</a>
+        <button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
+            <span class="navbar-toggler-icon"></span>
+        </button>
+    </div>
+</div>
+
+<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
+    <nav class="flex-column">
+        <div class="nav-item px-3">
+            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
+                <span class="oi oi-home" aria-hidden="true"></span> Home
+            </NavLink>
+        </div>
+        <div class="nav-item px-3">
+            <NavLink class="nav-link" href="counter">
+                <span class="oi oi-plus" aria-hidden="true"></span> Counter
+            </NavLink>
+        </div>
+        <div class="nav-item px-3">
+            <NavLink class="nav-link" href="fetchdata">
+                <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
+            </NavLink>
+        </div>
+        <div class="nav-item px-3">
+            <NavLink class="nav-link" href="callwebapi">
+                <span class="oi oi-list-rich" aria-hidden="true"></span> Call Web API
+            </NavLink>
+        </div>
+    </nav>
+</div>
+
+@code {
+    private bool collapseNavMenu = true;
+
+    private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
+
+    private void ToggleNavMenu()
+    {
+        collapseNavMenu = !collapseNavMenu;
+    }
+}
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.NoGraphOrApi.razor
similarity index 100%
rename from src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.razor
rename to src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.NoGraphOrApi.razor
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/appsettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/appsettings.json
index e3566d020610a7ce497ecee090d6daf48e49e9c6..2117429dd5d23c4f41ae59bc218ae2f9762637cd 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/appsettings.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/appsettings.json
@@ -8,16 +8,21 @@
 ////#endif
 //  },
 ////#elseif (IndividualB2CAuth)
+///*
+The following identity settings need to be configured
+before the project can be successfully executed.
+For more info see https:////aka.ms/dotnet-template-ms-identity-platform
+//*/
 //  "AzureAdB2C": {
 //    "Instance": "https:////aadB2CInstance.b2clogin.com/",
 //    "ClientId": "11111111-1111-1111-11111111111111111",
 //    "Domain": "qualified.domain.name",
 //#if (GenerateApi)
 //    "ClientSecret": "secret-from-app-registration",
-//    "Scopes": "api-scope",
 //    "ClientCertificates" : [
 //    ],
 //#endif
+//    "Scopes": "api-scope",
 //    "SignUpSignInPolicyId": "MySignUpSignInPolicyId"
 //  },
 ////#elseif (OrganizationalAuth)
@@ -40,11 +45,12 @@ For more info see https:////aka.ms/dotnet-template-ms-identity-platform
 //    "ClientCertificates" : [
 //    ],
 //#endif
+//    "Scopes": "api-scope",
 //    "CallbackPath": "/signin-oidc"
 //  },
 ////#endif
 ////#if (GenerateApiOrGraph)
-//  "DownstreamAPI": {
+//  "DownstreamApi": {
 //    /*
 //     'Scopes' contains space separated scopes of the Web API you want to call. This can be:
 //      - a scope for a V2 application (for instance api://b3682cc7-8b30-4bd2-aaba-080c6bf0fd31/access_as_user)
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json
index a4970ed0618305822be396a3cf5b8d9be0324c74..1e871b3b8a2248f56dd15649d3766896230767fc 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json
@@ -101,14 +101,14 @@
     "AAdB2CInstance": {
       "type": "parameter",
       "datatype": "string",
-      "defaultValue": "https://login.microsoftonline.com/tfp/",
-      "replaces": "https:////login.microsoftonline.com/tfp/",
+      "defaultValue": "https://qualified.domain.name.b2clogin.com/",
+      "replaces": "https:////qualified.domain.name.b2clogin.com/",
       "description": "The Azure Active Directory B2C instance to connect to (use with IndividualB2C auth)."
     },
     "SignUpSignInPolicyId": {
       "type": "parameter",
       "datatype": "string",
-      "defaultValue": "",
+      "defaultValue": "b2c_1_susi",
       "replaces": "MySignUpSignInPolicyId",
       "description": "The sign-in and sign-up policy ID for this project (use with IndividualB2C auth)."
     },
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/appsettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/appsettings.json
index 9509ba29c432a67bef7588ae1dd880807757225a..e2b8fc294a064edd45aef5400ea39f73bb2a110b 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/appsettings.json
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/appsettings.json
@@ -1,15 +1,20 @@
 {
 ////#if (IndividualB2CAuth)
+///*
+The following identity settings need to be configured
+before the project can be successfully executed.
+For more info see https:////aka.ms/dotnet-template-ms-identity-platform
+//*/
 //  "AzureAdB2C": {
-//    "Instance": "https:////login.microsoftonline.com/tfp/",
+//    "Instance": "https:////qualified.domain.name.b2clogin.com/",
 //    "ClientId": "11111111-1111-1111-11111111111111111",
 //    "Domain": "qualified.domain.name",
 //#if (GenerateApi)
 //    "ClientSecret": "secret-from-app-registration",
-//    "Scopes": "api-scope",
 //    "ClientCertificates" : [
 //    ],
 //#endif
+//    "Scopes": "api-scope",
 //    "SignUpSignInPolicyId": "MySignUpSignInPolicyId"
 //  },
 ////#elseif (OrganizationalAuth)
@@ -33,11 +38,12 @@ For more info see https:////aka.ms/dotnet-template-ms-identity-platform
 //    "ClientCertificates" : [
 //    ],
 //#endif
+//    "Scopes": "api-scope",
 //    "CallbackPath": "/signin-oidc"
 //  },
 ////#endif
 ////#if (GenerateApiOrGraph)
-//  "DownstreamAPI": {
+//  "DownstreamApi": {
 //    /*
 //     'Scopes' contains space separated scopes of the Web API you want to call. This can be:
 //      - a scope for a V2 application (for instance api://b3682cc7-8b30-4bd2-aaba-080c6bf0fd31/access_as_user)