Activities of "dhill"

We don't have an auth server project. Only the Blazor and Blazor.Client projects.

When user uses linked account to login to admin tenant from regular tenant the application crashes and logs out

Steps to reproduce:
  1. Log in as an admin user for a regular tenant
  2. Click on the profile icon of the user
  3. Click Linked accounts menu item
  4. Click actions next to admin tenant (user name shows no \ character)
  5. Select the "Log in with this tenant" element
  6. Application immediately logs out and redirects to \Dashboard
  7. User will be unable to login until cookies are cleared and the browser is re-opened
Expected: Users should be able to login as Tenants and use linked accounts into the admin tenant as many times as they wish.
Actual: Users cannot see the login to admin Tenant from regular Tenant without getting immediately logged out

When user login and logout of the application, and attempt to login as a tenant, user cannot see the "Login with this tenant" element under the action button

Steps to reproduce:

  1. Log in as an admin user
  2. Go to "Saas" under Administration
  3. Select "Tenants" under Saas
  4. Click on the Action button for Greethem
  5. Select the "Log in with this tenant" element
  6. Click on the profile icon on the tenant page
  7. Click on the Logout (To log out as tenant and admin user)
  8. Enter the credentials again (as Admin)
  9. Go to "Saas" under Administration
  10. Select "Tenants" under Saas
  11. Click on the Action button for Greethem
  12. Check if the user can see the "Log in with this tenant" element
Expected: Users should be able to log in as tenants no matter how many times they log in and out of the application
Actual: Users cannot log in as tenants the second time

We have video for reference if we can upload it somewhere.

When user login the second time, they cannot see the Tenant logins / linked accounts and Authority delegation

Steps to reproduce:

  1. Log in as an admin user
  2. Go to "Saas" under Administration
  3. Select "Tenants" under Saas
  4. Click on the Action button for Greethem
  5. Select the "Log in with this tenant" element
  6. Click on the profile icon on the tenant page
  7. Check if the user can see the Tenant logins / linked accounts and Authority delegation under the profile icon
  8. Click on the Logout (To log out as tenant and admin user)
  9. Enter the credentials again (as Admin)
  10. Go to "Saas" under Administration
  11. Select "Tenants" under Saas
  12. Click on the profile icon of the user
  13. Check if the user can see the Tenant logins / linked accounts and Authority delegation
Expected: Users should be able to see the Tenant logins / linked accounts and Authority delegation no matter how many times they log in and out of the application
Actual: Users cannot see the Tenant logins / linked accounts and Authority delegation the second time

Image

When user tries to logout of the tenant account, they get logged out of the admin account too

Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.call_entry_point @ managed-exports.ts:60 Oc @ run.ts:44 callEntryPoint @ blazor.web.js:1 ti @ blazor.web.js:1 await in ti (async) ei @ blazor.web.js:1 startWebAssemblyIfNotStarted @ blazor.web.js:1 resolveRendererIdForDescriptor @ blazor.web.js:1 determinePendingOperation @ blazor.web.js:1 refreshRootComponents @ blazor.web.js:1 (anonymous) @ blazor.web.js:1 setTimeout (async) rootComponentsMayRequireRefresh @ blazor.web.js:1 startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1 blazor.web.js:1 (null) Ar @ blazor.web.js:1 put_char @ dotnet.native.8.0.7.37dkch2d2y.js:8 write @ dotnet.native.8.0.7.37dkch2d2y.js:8 write @ dotnet.native.8.0.7.37dkch2d2y.js:8 doWritev @ dotnet.native.8.0.7.37dkch2d2y.js:8 _fd_write @ dotnet.native.8.0.7.37dkch2d2y.js:8 $func8373 @ 00b21cf6:0x1fb6ce $func8502 @ 00b21cf6:0x20351d $func8512 @ 00b21cf6:0x204f1f $func8377 @ 00b21cf6:0x1fbb05 $func1673 @ 00b21cf6:0x8dafb $func3199 @ 00b21cf6:0xe985a $func3201 @ 00b21cf6:0xe98c0 $func3353 @ 00b21cf6:0xf7efe $func345 @ 00b21cf6:0x1f705 $func240 @ 00b21cf6:0x1ba5f $func238 @ 00b21cf6:0x1b7c3 $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:236 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:177 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:177 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:236 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 (anonymous) @ invoke-cs.ts:184 endInvokeJSFromDotNet @ blazor.web.js:1 (anonymous) @ blazor.web.js:1 Promise.then (async) beginInvokeJSFromDotNet @ blazor.web.js:1 ri @ blazor.web.js:1 (anonymous) @ invoke-js.ts:233 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:177 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:236 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 (anonymous) @ invoke-cs.ts:184 endInvokeJSFromDotNet @ blazor.web.js:1 (anonymous) @ blazor.web.js:1 Promise.then (async) beginInvokeJSFromDotNet @ blazor.web.js:1 ri @ blazor.web.js:1 (anonymous) @ invoke-js.ts:233 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2504 @ 00b21cf6:0xbe43c $func1874 @ 00b21cf6:0x9a502 $func349 @ 00b21cf6:0x1fb7f $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.call_entry_point @ managed-exports.ts:60 Oc @ run.ts:44 callEntryPoint @ blazor.web.js:1 ti @ blazor.web.js:1 await in ti (async) ei @ blazor.web.js:1 startWebAssemblyIfNotStarted @ blazor.web.js:1 resolveRendererIdForDescriptor @ blazor.web.js:1 determinePendingOperation @ blazor.web.js:1 refreshRootComponents @ blazor.web.js:1 (anonymous) @ blazor.web.js:1 setTimeout (async) rootComponentsMayRequireRefresh @ blazor.web.js:1 startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1 {0}.app.localhost:44399/api/account/profile-picture-file/d3a58a5b-0605-02eb-49f4-3a13b6093bbf:1

    GET https://{0}.app.localhost:44399/api/account/profile-picture-file/d3a58a5b-0605-02eb-49f4-3a13b6093bbf net::ERR_NAME_NOT_RESOLVED

Image (async) setOrRemoveAttributeOrProperty @ blazor.web.js:1 applyAttribute @ blazor.web.js:1 insertElement @ blazor.web.js:1 insertFrame @ blazor.web.js:1 insertFrameRange @ blazor.web.js:1 insertElement @ blazor.web.js:1 insertFrame @ blazor.web.js:1 insertFrameRange @ blazor.web.js:1 insertElement @ blazor.web.js:1 insertFrame @ blazor.web.js:1 insertFrameRange @ blazor.web.js:1 insertElement @ blazor.web.js:1 insertFrame @ blazor.web.js:1 insertFrameRange @ blazor.web.js:1 insertElement @ blazor.web.js:1 insertFrame @ blazor.web.js:1 insertFrameRange @ blazor.web.js:1 insertElement @ blazor.web.js:1 insertFrame @ blazor.web.js:1 applyEdits @ blazor.web.js:1 updateComponent @ blazor.web.js:1 xe @ blazor.web.js:1 yt._internal.renderBatch @ blazor.web.js:1 (anonymous) @ invoke-js.ts:201 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:236 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:177 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:177 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:236 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 (anonymous) @ invoke-cs.ts:184 endInvokeJSFromDotNet @ blazor.web.js:1 (anonymous) @ blazor.web.js:1 Promise.then (async) beginInvokeJSFromDotNet @ blazor.web.js:1 ri @ blazor.web.js:1 (anonymous) @ invoke-js.ts:233 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:177 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.complete_task @ managed-exports.ts:142 (anonymous) @ marshal-to-cs.ts:335 Promise.then (async) mo @ marshal-to-cs.ts:329 (anonymous) @ marshal-to-cs.ts:83 (anonymous) @ invoke-js.ts:236 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 (anonymous) @ invoke-cs.ts:184 endInvokeJSFromDotNet @ blazor.web.js:1 (anonymous) @ blazor.web.js:1 Promise.then (async) beginInvokeJSFromDotNet @ blazor.web.js:1 ri @ blazor.web.js:1 (anonymous) @ invoke-js.ts:233 Tl @ invoke-js.ts:276 $func349 @ 00b21cf6:0x1fafb $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2504 @ 00b21cf6:0xbe43c $func1874 @ 00b21cf6:0x9a502 $func349 @ 00b21cf6:0x1fb7f $func245 @ 00b21cf6:0x1bf9f $func238 @ 00b21cf6:0xf16c $func272 @ 00b21cf6:0x1d1bd $func3185 @ 00b21cf6:0xe8756 $func2505 @ 00b21cf6:0xbe4ac $func2511 @ 00b21cf6:0xbecd0 $func2535 @ 00b21cf6:0xc1327 $mono_wasm_invoke_method_bound @ 00b21cf6:0xa4fa Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8 kr @ invoke-cs.ts:273 l.javaScriptExports.call_entry_point @ managed-exports.ts:60 Oc @ run.ts:44 callEntryPoint @ blazor.web.js:1 ti @ blazor.web.js:1 await in ti (async) ei @ blazor.web.js:1 startWebAssemblyIfNotStarted @ blazor.web.js:1 resolveRendererIdForDescriptor @ blazor.web.js:1 determinePendingOperation @ blazor.web.js:1 refreshRootComponents @ blazor.web.js:1 (anonymous) @ blazor.web.js:1 setTimeout (async) rootComponentsMayRequireRefresh @ blazor.web.js:1 startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1

Here's an image of the console if that's easier to read.

Here is an except of the console logs.

startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      No match tenant found
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      templateUrl: https://{0}.app.localhost:44399
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      url: greentherm.app.localhost
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      No match tenant found
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      templateUrl: https://{0}.app.localhost:44399
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      url: greentherm.app.localhost
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      No match tenant found
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      templateUrl: https://{0}.app.localhost:44399
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      url: greentherm.app.localhost
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      No match tenant found
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1
  fail: SafetyPlusWeb.Blazor.Client.WebAssemblyMultiTenantUrlProvider[0]
      templateUrl: https://{0}.app.localhost:44399
(anonymous) @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Tl @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2504 @ 00b21cf6:1
$func1874 @ 00b21cf6:1
$func349 @ 00b21cf6:1
$func245 @ 00b21cf6:1
$func238 @ 00b21cf6:1
$func272 @ 00b21cf6:1
$func3185 @ 00b21cf6:1
$func2505 @ 00b21cf6:1
$func2511 @ 00b21cf6:1
$func2535 @ 00b21cf6:1
$mono_wasm_invoke_method_bound @ 00b21cf6:1
Module._mono_wasm_invoke_method_bound @ dotnet.native.8.0.7.37dkch2d2y.js:8
kr @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
l.javaScriptExports.call_entry_point @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
Oc @ dotnet.runtime.8.0.7.urcsr75yt5.js:3
callEntryPoint @ blazor.web.js:1
ti @ blazor.web.js:1
await in ti (async)
ei @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout (async)
rootComponentsMayRequireRefresh @ blazor.web.js:1
startLoadingWebAssemblyIfNotStarted @ blazor.web.js:1

Hi,

I added the following log entries to the code with breakpoints. The breakpoints arne't getting hit and the logs aren't writing to either the browser console or the Logs.txt or the Debug console.

This is what the project looks like in terms of file structure.

using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Http.Client;
using Volo.Abp.MultiTenancy;

namespace SafetyPlusWeb.Blazor.Client;

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IRemoteServiceConfigurationProvider), typeof(RemoteServiceConfigurationProvider))]
public class MyRemoteServiceConfigurationProvider(ILogger<MyRemoteServiceConfigurationProvider> logger, IOptionsMonitor<AbpRemoteServiceOptions> options, IMultiTenantUrlProvider multiTenantUrlProvider, ICurrentTenant currentTenant) : RemoteServiceConfigurationProvider(options, multiTenantUrlProvider, currentTenant)
{
    protected override async Task<RemoteServiceConfiguration?> GetMultiTenantConfigurationAsync(RemoteServiceConfiguration? configuration)
    {
        if (configuration == null)
        {
            logger.LogError("Configuration is null. Returning null.");
            return configuration;
        }

        var baseUrl = await MultiTenantUrlProvider.GetUrlAsync(configuration.BaseUrl);

        logger.LogError("Configuration for {ServiceName} is {BaseUrl}", nameof(MyRemoteServiceConfigurationProvider), baseUrl);

        if (baseUrl == configuration.BaseUrl)
            return configuration;

        var multiTenantConfiguration = new RemoteServiceConfiguration(configuration)
        {
            BaseUrl = baseUrl
        };

        return multiTenantConfiguration;
    }
}

This is the client module code.

#pragma warning disable
using System;
using System.Net.Http;
using Blazorise.Bootstrap5;
using Blazorise.Icons.FontAwesome;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using SafetyPlusWeb.Blazor.Client.Components.Layout;
using SafetyPlusWeb.Blazor.Client.Navigation;
using OpenIddict.Abstractions;
using Volo.Abp.Account.Pro.Admin.Blazor.WebAssembly;
using Volo.Abp.AspNetCore.Components.Web;
using Volo.Abp.AspNetCore.Components.Web.LeptonXTheme.Components;
using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
using Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXTheme;
using Volo.Abp.AuditLogging.Blazor.WebAssembly;
using Volo.Abp.Autofac.WebAssembly;
using Volo.Abp.AutoMapper;
using Volo.Abp.Gdpr.Blazor.Extensions;
using Volo.Abp.Gdpr.Blazor.WebAssembly;
using Volo.Abp.Identity.Pro.Blazor.Server.WebAssembly;
using Volo.Abp.Modularity;
using Volo.Abp.UI.Navigation;
using Volo.Abp.LanguageManagement.Blazor.WebAssembly;
using Volo.Abp.LeptonX.Shared;
using Volo.Abp.OpenIddict.Pro.Blazor.WebAssembly;
using Volo.Abp.SettingManagement.Blazor.WebAssembly;
using Volo.Abp.TextTemplateManagement.Blazor.WebAssembly;
using Volo.Saas.Host.Blazor.WebAssembly;


namespace SafetyPlusWeb.Blazor.Client;

[DependsOn(
    typeof(AbpAccountAdminBlazorWebAssemblyModule),
    typeof(AbpAspNetCoreComponentsWebAssemblyLeptonXThemeModule),
    typeof(AbpAuditLoggingBlazorWebAssemblyModule),
    typeof(AbpAutofacWebAssemblyModule),
    typeof(AbpGdprBlazorWebAssemblyModule),
    typeof(AbpIdentityProBlazorWebAssemblyModule),
    typeof(AbpOpenIddictProBlazorWebAssemblyModule),
    typeof(AbpSettingManagementBlazorWebAssemblyModule),
    typeof(LanguageManagementBlazorWebAssemblyModule),
    typeof(SafetyPlusWebHttpApiClientModule),
    typeof(SaasHostBlazorWebAssemblyModule),
    typeof(TextTemplateManagementBlazorWebAssemblyModule)
)]
public class SafetyPlusWebBlazorClientModule : AbpModule
{
    public override void PreConfigureServices(ServiceConfigurationContext context)
    {
        PreConfigure<AbpAspNetCoreComponentsWebOptions>(options =>
        {
            options.IsBlazorWebApp = true;
        });
    }
    
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        var environment = context.Services.GetSingletonInstance<IWebAssemblyHostEnvironment>();
        var builder = context.Services.GetSingletonInstance<WebAssemblyHostBuilder>();

        ConfigureAuthentication(builder);
        ConfigureHttpClient(context, environment);
        ConfigureBlazorise(context);
        ConfigureRouter(context);
        ConfigureMenu(context);
        ConfigureAutoMapper(context);
        ConfigureCookieConsent(context);
        ConfigureTheme();
    }
    
    private void ConfigureCookieConsent(ServiceConfigurationContext context)
    {
        context.Services.AddAbpCookieConsent(options =>
        {
            options.IsEnabled = true;
            options.CookiePolicyUrl = "/CookiePolicy";
            options.PrivacyPolicyUrl = "/PrivacyPolicy";
        });
    }

    private void ConfigureTheme()
    {
        Configure<LeptonXThemeOptions>(options =>
        {
            options.DefaultStyle = LeptonXStyleNames.System;
        });
    }

    private void ConfigureRouter(ServiceConfigurationContext context)
    {
        Configure<AbpRouterOptions>(options =>
        {
            options.AppAssembly = typeof(SafetyPlusWebBlazorClientModule).Assembly;
            options.AdditionalAssemblies.Add(typeof(SafetyPlusWebBlazorClientModule).Assembly);
        });
    }

    private void ConfigureMenu(ServiceConfigurationContext context)
    {
        Configure<AbpNavigationOptions>(options =>
        {
            options.MenuContributors.Add(new SafetyPlusWebMenuContributor(context.Services.GetConfiguration()));
        });
    }

    private void ConfigureBlazorise(ServiceConfigurationContext context)
    {
        context.Services
            .AddBootstrap5Providers()
            .AddFontAwesomeIcons();
    }

    private static void ConfigureAuthentication(WebAssemblyHostBuilder builder)
    {
        //TODO: Remove SignOutSessionStateManager in new version.
        builder.Services.TryAddScoped<SignOutSessionStateManager>();
        builder.Services.AddBlazorWebAppServices();
    }
    
    private static void ConfigureHttpClient(ServiceConfigurationContext context, IWebAssemblyHostEnvironment environment)
    {
        context.Services.AddTransient(sp => new HttpClient
        {
            BaseAddress = new Uri(environment.BaseAddress)
        });
    }

    private void ConfigureAutoMapper(ServiceConfigurationContext context)
    {
        Configure<AbpAutoMapperOptions>(options =>
        {
            options.AddMaps<SafetyPlusWebBlazorClientModule>();
        });
    }
}

Hi there,

Even with those attributes the breakpoint isn't getting hit.

Showing 21 to 30 of 56 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 19, 2024, 10:13