<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress.com" -->
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"><url><loc>https://damienbod.com/2026/03/09/invite-guest-users-in-a-entra-id-multi-tenant-setup/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/02/multi-tenant-app-client2.drawio.png</image:loc><image:title>Multi-tenant-App-Client2.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/02/multi-tenant-app-client.drawio-2.png</image:loc><image:title>Multi-tenant-App-Client.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/02/multi-tenant-app-client.drawio-1.png</image:loc><image:title>Multi-tenant-App-Client.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/02/multi-tenant-app-client_02.png</image:loc><image:title>Multi-tenant-App-Client_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/02/multi-tenant-app-client_01.png</image:loc><image:title>Multi-tenant-App-Client_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/02/multi-tenant-app-client.drawio.png</image:loc><image:title>Multi-tenant-App-Client.drawio</image:title></image:image><lastmod>2026-03-09T09:06:26+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2026/02/16/add-application-security-to-the-swiyu-generic-management-verifier-apis-using-oauth/</loc><lastmod>2026-02-16T07:13:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/12/20/digital-authentication-and-identity-validation/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/12/identity-levels.drawio.png</image:loc><image:title>identity-levels.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/12/authentication-levels.drawio.png</image:loc><image:title>authentication-levels.drawio</image:title></image:image><lastmod>2026-02-16T07:12:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2026/01/05/set-the-amr-claim-when-using-passkeys-authentication-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/12/amr-passkeys-pop_01.png</image:loc><image:title>amr-passkeys-pop_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/12/oidc-confidential-pkce-par-flow-drawio.png</image:loc><image:title>oidc-confidential-pkce-par-flow-drawio</image:title></image:image><lastmod>2026-02-16T07:12:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2026/01/12/implementing-level-of-authentication-loa-with-asp-net-core-identity-and-duende/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/12/amr-passkeys-pop_02.png</image:loc><image:title>amr-passkeys-pop_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/12/authentication-levels.drawio-1.png</image:loc><image:title>authentication-levels.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/12/oidc_loi_loa.drawio.png</image:loc><image:title>OIDC_LOI_LOA.drawio</image:title></image:image><lastmod>2026-02-16T07:12:20+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2026/01/18/implementing-level-of-identification-loi-with-asp-net-core-identity-and-duende/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/01/amr-passwords_01.png</image:loc><image:title>amr-passwords_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/01/amr-passkeys-pop_02.png</image:loc><image:title>amr-passkeys-pop_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/12/oidc_loi_loa.drawio-1.png</image:loc><image:title>OIDC_LOI_LOA.drawio</image:title></image:image><lastmod>2026-02-16T07:12:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2026/01/26/force-step-up-authentication-in-web-applications/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/01/step_up_errors_id_check_required_02.png</image:loc><image:title>step_up_errors_id_check_required_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/01/step_up_errors_01.png</image:loc><image:title>step_up_errors_01</image:title></image:image><lastmod>2026-02-16T07:11:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2026/02/02/use-client-assertions-in-asp-net-core-using-openid-connect-oauth-dpop-and-oauth-par/</loc><lastmod>2026-02-16T07:11:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2026/02/09/isolate-the-swiyu-public-beta-management-apis-using-yarp/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/01/network.drawio.png</image:loc><image:title>Network.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2026/01/oidc_loi_loa.drawio.png</image:loc><image:title>OIDC_LOI_LOA.drawio</image:title></image:image><lastmod>2026-02-16T07:11:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/08/04/issuer-and-verify-credentials-using-the-swiss-digital-identity-public-beta-asp-net-core-and-net-aspire/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/08/overview.drawio.png</image:loc><image:title>overview.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/07/overview.drawio-1.png</image:loc><image:title>overview.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/07/verify_credential.png</image:loc><image:title>verify_credential</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/07/issue_credential.png</image:loc><image:title>issue_credential</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/07/overview.drawio.png</image:loc><image:title>overview.drawio</image:title></image:image><lastmod>2026-02-15T11:07:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/about/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/10/microsoftmvp2016.png</image:loc><image:title>microsoftmvp2016</image:title></image:image><lastmod>2026-01-11T20:20:21+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://damienbod.com/2025/11/10/implement-mfa-using-swiyu-the-swiss-e-id-with-duende-identityserver-asp-net-core-identity-and-net-aspire/</loc><lastmod>2025-12-30T15:33:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/11/17/implement-forgot-your-password-using-swiyu-asp-net-core-identity-and-aspire/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/11/overview.drawio.png</image:loc><image:title>overview.drawio</image:title></image:image><lastmod>2025-12-30T15:32:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/07/20/using-key-vault-and-managed-identities-with-azure-functions/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/kv_durable_azure_04.png</image:loc><image:title>kv_durable_azure_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/kv_durable_azure_03.png</image:loc><image:title>kv_durable_azure_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/kv_durable_azure_02.png</image:loc><image:title>kv_durable_azure_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/kv_durable_azure_01.png</image:loc><image:title>kv_durable_azure_01</image:title></image:image><lastmod>2025-11-23T09:30:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/08/11/retry-error-handling-for-activities-and-orchestrations-in-azure-durable-functions/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/adfretryerrors_01.png</image:loc><image:title>adfRetryErrors_01</image:title></image:image><lastmod>2025-11-23T09:13:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/07/24/waiting-for-azure-durable-functions-to-complete/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/azuredurablefunctionwait_02.png</image:loc><image:title>azureDurableFunctionWait_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/azuredurablefunctionwait_01.png</image:loc><image:title>azureDurableFunctionWait_01</image:title></image:image><lastmod>2025-11-23T09:00:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/08/01/azure-durable-functions-monitoring-and-diagnostics/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/azuredurablefunctions_01.png</image:loc><image:title>AzureDurableFunctions_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/azurite.png</image:loc><image:title>azurite</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/adfmonitoring_04.png</image:loc><image:title>adfMonitoring_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/adfmonitoring_03.png</image:loc><image:title>adfMonitoring_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/adfmonitoring_02.png</image:loc><image:title>adfMonitoring_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/adfmonitoring_01.png</image:loc><image:title>adfMonitoring_01</image:title></image:image><lastmod>2025-11-23T08:40:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/07/12/azure-functions-configuration-and-secrets-management/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/durable_azure_configuration_01.png</image:loc><image:title>durable_azure_configuration_01</image:title></image:image><lastmod>2025-11-23T08:40:22+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/07/06/using-external-inputs-in-azure-durable-functions/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/durable_azure_03.png</image:loc><image:title>durable_azure_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/durable_azure_02.png</image:loc><image:title>durable_azure_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/07/durable_azure_01.png</image:loc><image:title>durable_azure_01</image:title></image:image><lastmod>2025-11-23T08:24:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/10/27/use-swiyu-the-swiss-e-id-to-authenticate-users-with-duende-and-net-aspire/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/10/login_02.png</image:loc><image:title>login_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/10/login_01.png</image:loc><image:title>login_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/10/overview.drawio.png</image:loc><image:title>overview.drawio</image:title></image:image><lastmod>2025-11-17T08:17:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/02/19/using-a-csp-nonce-in-blazor-web/</loc><lastmod>2025-11-14T18:42:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/11/03/implement-a-secure-mcp-server-using-oauth-dpop-and-duende-identity-provider/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/09/oidc_mcp.drawio.png</image:loc><image:title>OIDC_MCP.drawio</image:title></image:image><lastmod>2025-11-03T16:53:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/02/03/multiple-client-sign-in-customizations-using-duende-identity-provider/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/01/layout-client-02.png</image:loc><image:title>layout-client-02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/01/layout-client-01.png</image:loc><image:title>layout-client-01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/01/context-2.png</image:loc><image:title>context</image:title></image:image><lastmod>2025-10-24T21:02:20+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/10/16/implement-a-secure-mcp-oauth-desktop-client-using-oauth-and-entra-id/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/09/desktop_auth_ui.png</image:loc><image:title>desktop_auth_ui</image:title></image:image><lastmod>2025-10-16T05:53:04+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/09/23/implement-a-secure-mcp-server-using-oauth-and-entra-id/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/09/entraid_mcp.drawio.png</image:loc><image:title>EntraID_MCP.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/09/web_ui_prompt.png</image:loc><image:title>web_ui_prompt</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/09/mcp-flow-1.drawio.png</image:loc><image:title>mcp-flow-1.drawio</image:title></image:image><lastmod>2025-09-25T06:37:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/08/18/reset-cookies-and-force-new-sign-in-using-asp-net-core-identity/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/05/federation.png</image:loc><image:title>federation</image:title></image:image><lastmod>2025-08-18T08:01:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/08/06/use-eddsa-signatures-to-validate-tokens-in-asp-net-core-using-openid-connect/</loc><lastmod>2025-08-06T14:02:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/07/02/implement-asp-net-core-openid-connect-with-keykloak-to-implement-level-of-authentication-loa-requirements/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/05/keycloak_idp_loa_realm.png</image:loc><image:title>keycloak_idp_loA_realm</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/05/keycloak_idp_loa.png</image:loc><image:title>keycloak_idp_loA</image:title></image:image><lastmod>2025-07-03T03:24:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/06/10/experimental-alternative-flow-for-oauth-first-party-applications/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/06/flow-native-app.png</image:loc><image:title>flow-native-app</image:title></image:image><lastmod>2025-06-10T04:11:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/06/02/handling-openid-connect-error-events-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/05/oidc-confidential-pkce-flow-drawio.png</image:loc><image:title>oidc-confidential-pkce-flow-drawio</image:title></image:image><lastmod>2025-06-02T05:41:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/05/26/revisiting-using-a-content-security-policy-csp-nonce-in-blazor/</loc><lastmod>2025-05-26T06:01:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/05/19/using-multiple-external-identity-providers-from-asp-net-core-identity-and-duende-identityserver/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/05/overview.drawio-1.png</image:loc><image:title>overview.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/05/overview.drawio.png</image:loc><image:title>overview.drawio</image:title></image:image><lastmod>2025-05-19T06:25:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/02/24/use-client-assertions-in-openid-connect-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/oidc-confidential-pkce-code-flow-assertion.drawio.png</image:loc><image:title>oidc-confidential-pkce-code-flow-assertion.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/client-assertions-entraid.png</image:loc><image:title>client-assertions-entraid</image:title></image:image><lastmod>2025-05-12T05:57:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/04/21/implement-client-assertions-for-oauth-client-credential-flows-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/03/oauthccsignedjwtassertion.png</image:loc><image:title>OAuthCCSignedJWTAssertion</image:title></image:image><lastmod>2025-05-12T05:57:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/05/12/implement-client-assertions-with-client-credentials-flow-using-oauth-dpop/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/03/oauthccsignedjwtassertion-dpop.png</image:loc><image:title>OAuthCCSignedJWTAssertion DPoP</image:title></image:image><lastmod>2025-05-12T05:51:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/01/15/asp-net-core-user-delegated-access-token-management/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/01/context.png</image:loc><image:title>context</image:title></image:image><lastmod>2025-03-25T12:48:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/01/20/asp-net-core-user-application-access-token-management/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/01/context-1.png</image:loc><image:title>context</image:title></image:image><lastmod>2025-03-25T12:48:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/02/10/asp-net-core-delegated-oauth-token-exchange-access-token-management/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/identityserver-oauth-token-exchange.png</image:loc><image:title>identityserver-OAUTH-token-exchange</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/context.png</image:loc><image:title>context</image:title></image:image><lastmod>2025-03-25T12:47:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/03/25/asp-net-core-delegated-microsoft-obo-access-token-management-entra-only/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/tmgmt-obo-entra_01.png</image:loc><image:title>tmgmt-obo-entra_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/context-1.png</image:loc><image:title>context</image:title></image:image><lastmod>2025-03-25T12:45:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/03/03/implement-phone-verification-2fa-using-asp-net-core-identity/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/identity-2fa-add-phone_04.png</image:loc><image:title>identity-2fa-add-phone_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/identity-2fa-add-phone_03.png</image:loc><image:title>identity-2fa-add-phone_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/identity-2fa-add-phone_02.png</image:loc><image:title>identity-2fa-add-phone_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/identity-2fa-add-phone_01.png</image:loc><image:title>identity-2fa-add-phone_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/identity-sms-add-phone_03.png</image:loc><image:title>identity-sms-add-phone_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/identity-sms-add-phone_02.png</image:loc><image:title>identity-sms-add-phone_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/identity-sms-add-phone_01.png</image:loc><image:title>identity-sms-add-phone_01</image:title></image:image><lastmod>2025-03-03T06:05:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2025/02/17/customizing-a-single-client-sign-in-using-parameters-in-duende-identityserver/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2025/02/context-parameters.png</image:loc><image:title>context-parameters</image:title></image:image><lastmod>2025-02-17T06:34:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/12/09/using-entra-external-id-with-an-auth0-openid-connect-identity-provider/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/12/oidc-entraexternalid_01c.png</image:loc><image:title>oidc-entraExternalId_01c</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/12/sien-2024-11-25-hrs.png</image:loc><image:title>sien-2024-11-25-hrs</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/12/oidc-entraexternalid_05.png</image:loc><image:title>oidc-entraExternalId_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/12/oidc-entraexternalid_04.png</image:loc><image:title>oidc-entraExternalId_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/12/oidc-entraexternalid_03.png</image:loc><image:title>oidc-entraExternalId_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/12/oidc-entraexternalid_02.png</image:loc><image:title>oidc-entraExternalId_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/12/oidc-entraexternalid_01b.png</image:loc><image:title>oidc-entraExternalId_01b</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/12/oidc-entraexternalid_01.png</image:loc><image:title>oidc-entraExternalId_01</image:title></image:image><lastmod>2026-02-01T18:56:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/12/02/using-asp-net-core-with-azure-key-vault/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/11/aspnetcore-keyvault-rbac.png</image:loc><image:title>aspnetcore-keyvault-rbac</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/11/app-registration-application.png</image:loc><image:title>app-registration-application</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/11/default-credentail-error.png</image:loc><image:title>default-credentail-error</image:title></image:image><lastmod>2024-12-03T15:54:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/11/18/asp-net-core-bff-using-openid-connect-and-vue-js/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/11/vue-aspnetcore-bff-yarp-dev.drawio.png</image:loc><image:title>vue-aspnetcore-bff-yarp-dev.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/11/vue-aspnetcore-bff.drawio.png</image:loc><image:title>vue-aspnetcore-bff.drawio</image:title></image:image><lastmod>2024-11-19T08:44:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/11/04/asp-net-core-and-angular-bff-using-a-yarp-downstream-api-protected-using-certificate-authentication/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/11/context.drawio-1.png</image:loc><image:title>context.drawio</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/11/bff_downstream_cert_api_01.png</image:loc><image:title>bff_downstream_cert_api_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/11/context.drawio.png</image:loc><image:title>context.drawio</image:title></image:image><lastmod>2024-11-04T06:59:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/10/07/microsoft-entra-id-app-to-app-security-architecture/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/10/single_app_registration_02.png</image:loc><image:title>single_app_registration_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/10/single_app_registration_01.png</image:loc><image:title>single_app_registration_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/azure_app_arch_05.png</image:loc><image:title>azure_app_arch_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/azure_app_arch_04.png</image:loc><image:title>azure_app_arch_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/azure_app_arch_03.png</image:loc><image:title>azure_app_arch_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/azure_app_arch_02.png</image:loc><image:title>azure_app_arch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/azure_app_arch_01.png</image:loc><image:title>azure_app_arch_01</image:title></image:image><lastmod>2024-11-02T11:59:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/10/21/implement-security-headers-for-an-api-supporting-openapi-swagger-ui/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/10/security_headers_02.png</image:loc><image:title>security_headers_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/10/security_headers_01.png</image:loc><image:title>security_headers_01</image:title></image:image><lastmod>2024-10-21T07:27:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/08/16/improving-application-security-in-asp-net-core-razor-pages-using-http-headers-part-1/</loc><lastmod>2024-10-19T07:43:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/08/23/improving-application-security-in-blazor-using-http-headers-part-2/</loc><lastmod>2024-10-19T07:35:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/08/30/improving-application-security-in-an-asp-net-core-api-using-http-headers-part-3/</loc><lastmod>2024-10-19T07:08:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/09/23/implement-a-geo-distance-search-using-net-aspire-elasticsearch-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/elastic_geo_search_02.png</image:loc><image:title>elastic_geo_search_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/elastic_geo_search_01.png</image:loc><image:title>elastic_geo_search_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/aspire-elastic-3.png</image:loc><image:title>aspire-elastic</image:title></image:image><lastmod>2024-09-23T09:00:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/09/16/using-elasticsearch-with-net-aspire/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/aspire-elastic-2.png</image:loc><image:title>aspire-elastic</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/aspire-elastic-1.png</image:loc><image:title>aspire-elastic</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/aspire-elastic.png</image:loc><image:title>aspire-elastic</image:title></image:image><lastmod>2024-09-20T14:11:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/09/02/implement-asp-net-core-openid-connect-oauth-par-client-with-keycloak-using-net-aspire/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/oauth-par-keycloak_02.png</image:loc><image:title>oauth-par-keycloak_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/oauth-par-keycloak_01.png</image:loc><image:title>oauth-par-keycloak_01</image:title></image:image><lastmod>2024-09-13T18:08:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/02/28/implementing-an-audit-trail-using-asp-net-core-and-elasticsearch-with-nest/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/02/elastic_auditlog_01.png</image:loc><image:title>elastic_auditlog_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/02/01_audittrailview.png</image:loc><image:title>01_audittrailview</image:title></image:image><lastmod>2024-09-11T13:02:06+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/09/09/implement-openid-connect-back-channel-logout-using-asp-net-core-keycloak-and-net-aspire/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/back-channel-keycloak_03.png</image:loc><image:title>back-channel-keycloak_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/back-channel-keycloak_02.png</image:loc><image:title>back-channel-keycloak_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/09/back-channel-keycloak_01.png</image:loc><image:title>back-channel-keycloak_01</image:title></image:image><lastmod>2024-09-09T06:09:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/11/20/improve-asp-net-core-authentication-using-oauth-par-and-openid-connect/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/11/oauth-par-oidc_01.png</image:loc><image:title>oauth-par-oidc_01</image:title></image:image><lastmod>2024-08-15T10:23:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/10/11/securing-an-asp-net-core-razor-page-app-using-openid-connect-code-flow-with-pkce/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/10/oidc_pkce_razor_pages_01.png</image:loc><image:title>oidc_pkce_razor_pages_01</image:title></image:image><lastmod>2024-08-14T15:14:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/08/06/implementing-an-asp-net-core-api-with-net-9-and-openapi/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/08/image.png</image:loc><image:title>image</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/08/openapi_v1_01.png</image:loc><image:title>openapi_v1_01</image:title></image:image><lastmod>2025-05-21T11:55:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/08/12/add-a-swagger-ui-using-a-net-9-json-openapi-file/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/08/api-swaggerui_01.png</image:loc><image:title>api-SwaggerUI_01</image:title></image:image><lastmod>2024-08-12T05:41:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/08/17/securing-azure-functions-using-api-keys/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/azurefunctionssecurity_apikeys_04.png</image:loc><image:title>AzureFunctionsSecurity_ApiKeys_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/azurefunctionssecurity_apikeys_03.png</image:loc><image:title>AzureFunctionsSecurity_ApiKeys_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/azurefunctionssecurity_apikeys_02.png</image:loc><image:title>AzureFunctionsSecurity_ApiKeys_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/azurefunctionssecurity_apikeys_01.png</image:loc><image:title>AzureFunctionsSecurity_ApiKeys_01</image:title></image:image><lastmod>2024-07-05T11:55:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/09/16/securing-azure-key-vault-inside-a-vnet-and-using-from-an-azure-function/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_09.png</image:loc><image:title>vnet_keyvault_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_08.png</image:loc><image:title>vnet_keyvault_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_07.png</image:loc><image:title>vnet_keyvault_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_06.png</image:loc><image:title>vnet_keyvault_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_05.png</image:loc><image:title>vnet_keyvault_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_04.png</image:loc><image:title>vnet_keyvault_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_03.png</image:loc><image:title>vnet_keyvault_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_02.png</image:loc><image:title>vnet_keyvault_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/vnet_keyvault_01.png</image:loc><image:title>vnet_keyvault_01</image:title></image:image><lastmod>2024-07-05T11:44:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/09/10/securing-azure-functions-using-an-azure-virtual-network/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azurenetworkarch_04.png</image:loc><image:title>azureNetworkArch_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azurenetworkarch_02.png</image:loc><image:title>azureNetworkArch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azurenetworkarch_01.png</image:loc><image:title>azureNetworkArch_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/funcnetworksecurity_07.png</image:loc><image:title>funcNetworkSecurity_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/funcnetworksecurity_06.png</image:loc><image:title>funcNetworkSecurity_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/funcnetworksecurity_05.png</image:loc><image:title>funcNetworkSecurity_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/funcnetworksecurity_04.png</image:loc><image:title>funcNetworkSecurity_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/funcnetworksecurity_03.png</image:loc><image:title>funcNetworkSecurity_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/funcnetworksecurity_02.png</image:loc><image:title>funcNetworkSecurity_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/funcnetworksecurity_01.png</image:loc><image:title>funcNetworkSecurity_01</image:title></image:image><lastmod>2024-07-05T11:44:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/09/04/securing-azure-functions-using-certificate-authentication/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azurefunctioncertificates_01.png</image:loc><image:title>AzureFunctionCertificates_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azfunc_certs_03.png</image:loc><image:title>azfunc_certs_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azfunc_certs_02.png</image:loc><image:title>azfunc_certs_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azfunc_certs_01.png</image:loc><image:title>azfunc_certs_01</image:title></image:image><lastmod>2024-07-05T10:58:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/09/24/securing-azure-functions-using-azure-ad-jwt-bearer-token-authentication-for-user-access-tokens/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azfunc_user_access_01.png</image:loc><image:title>azfunc_user_access_01</image:title></image:image><lastmod>2024-07-05T09:12:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/07/01/creating-hashes-in-net/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/06/hashing_01.png</image:loc><image:title>hashing_01</image:title></image:image><lastmod>2024-07-01T19:07:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/07/20/using-an-asp-net-core-ihostedservice-to-run-azure-service-bus-subscriptions-and-consumers/</loc><lastmod>2024-06-30T13:51:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/03/06/using-azure-service-bus-with-restricted-access/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/asb_queue_05.png</image:loc><image:title>asb_queue_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/asb_queue_04.png</image:loc><image:title>asb_queue_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/asb_queue_03.png</image:loc><image:title>asb_queue_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/asb_queue_02.png</image:loc><image:title>asb_queue_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/asb_queue_01.png</image:loc><image:title>asb_queue_01</image:title></image:image><lastmod>2024-06-30T13:50:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/05/03/using-an-azure-service-bus-topic-subscription-in-an-azure-function/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/05/azure_sb_func_02.png</image:loc><image:title>azure_sb_func_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/05/azure_sb_func_01.png</image:loc><image:title>azure_sb_func_01</image:title></image:image><lastmod>2024-06-30T13:49:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/04/30/using-ef-core-to-process-azure-service-messages-in-asp-net-core/</loc><lastmod>2024-06-30T13:44:20+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/04/27/using-azure-service-bus-topics-subscription-filters-in-asp-net-core/</loc><lastmod>2024-06-30T13:41:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/04/24/using-azure-service-bus-topics-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/azurebusaspnetcore_02_04.png</image:loc><image:title>azureBusAspNetCore_02_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/azurebusaspnetcore_02_03.png</image:loc><image:title>azureBusAspNetCore_02_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/azurebusaspnetcore_02_02.png</image:loc><image:title>azureBusAspNetCore_02_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/azurebusaspnetcore_02_01.png</image:loc><image:title>azureBusAspNetCore_02_01</image:title></image:image><lastmod>2024-06-30T13:38:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/04/23/using-azure-service-bus-queues-with-asp-net-core-services/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/azurebusaspnetcore_03.png</image:loc><image:title>azureBusAspNetCore_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/azurebusaspnetcore_02.png</image:loc><image:title>azureBusAspNetCore_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/azurebusaspnetcore_01.png</image:loc><image:title>azureBusAspNetCore_01</image:title></image:image><lastmod>2024-06-30T13:31:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/06/11/sonar-webinar-end-to-end-security-of-a-web-application/</loc><lastmod>2024-06-11T06:58:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/06/05/creating-and-downloading-a-pdf-or-docx-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/05/aspnetcore_pdf_gembox_02.png</image:loc><image:title>aspnetcore_pdf_gembox_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/05/aspnetcore_pdf_gembox_01.png</image:loc><image:title>aspnetcore_pdf_gembox_01</image:title></image:image><lastmod>2024-06-16T15:23:38+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/05/27/implement-a-microsoft-entra-id-external-authentication-method-using-asp-net-core-and-openiddict/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/05/me-id_external-authn-flows_07.png</image:loc><image:title>me-id_external-authn-flows_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/05/me-id_external-authn-flows_06.png</image:loc><image:title>me-id_external-authn-flows_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/05/me-id_external-authn-flows_02.png</image:loc><image:title>me-id_external-authn-flows_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/05/me-id_external-authn-flows_04.png</image:loc><image:title>me-id_external-authn-flows_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/05/me-id_external-authn-flows_03.png</image:loc><image:title>me-id_external-authn-flows_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/05/me-id_external-authn-flows_01.png</image:loc><image:title>me-id_external-authn-flows_01</image:title></image:image><lastmod>2024-10-30T07:15:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/05/13/using-sonarcloud-with-asp-net-core-angular-and-github-actions/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/04/sonarcloud_github_02.png</image:loc><image:title>sonarcloud_github_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/04/bff-arch-production_01.png</image:loc><image:title>bff-arch-production_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/04/sonarcloud_github_01.png</image:loc><image:title>sonarcloud_github_01</image:title></image:image><lastmod>2024-05-13T05:57:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/04/15/implement-a-secure-blazor-web-application-using-openid-connect-and-security-headers/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/04/context-1.png</image:loc><image:title>context-1</image:title></image:image><lastmod>2024-12-11T10:09:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/04/08/bff-secured-asp-net-core-application-using-downstream-api-and-an-oauth-client-credentials-jwt/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/04/context.png</image:loc><image:title>context</image:title></image:image><lastmod>2025-08-13T09:37:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/04/02/create-conditional-access-base-policies-for-a-microsoft-entra-id-tenant/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/04/admin-ca-policies-block-legacy-authn_04.png</image:loc><image:title>admin-ca-policies-block-legacy-authn_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-ca-policies-settings-mau_02-3.png</image:loc><image:title>admin-ca-policies-settings-mau_02-3</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-ca-policies-enable-user-risk_07.png</image:loc><image:title>admin-ca-policies-enable-user-risk_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-ca-policies-force-mfa-all-users_06-1.png</image:loc><image:title>admin-ca-policies-force-mfa-all-users_06-1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-ca-policies-settings-mau_02-2.png</image:loc><image:title>admin-ca-policies-settings-mau_02-2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-settings-mau_01.png</image:loc><image:title>admin-settings-mau_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-ca-policies-admin-force-phishing-resistant_07.png</image:loc><image:title>admin-ca-policies-admin-force-phishing-resistant_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-ca-policies-enable-sign-in-risk_05.png</image:loc><image:title>admin-ca-policies-enable-sign-in-risk_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-ca-policies-block-legacy-authn_04.png</image:loc><image:title>admin-ca-policies-block-legacy-authn_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/03/admin-ca-policies-force-mfa-all-users_06.png</image:loc><image:title>admin-ca-policies-force-mfa-all-users_06</image:title></image:image><lastmod>2024-04-03T06:53:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/02/26/delegated-read-and-application-write-access-to-blob-storage-using-asp-net-core-with-entra-id-authentication/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/02/delegated_app_azure_blob_rbac_02.png</image:loc><image:title>delegated_app_azure_blob_rbac_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/02/diagrams-app-write.png</image:loc><image:title>diagrams-app-write</image:title></image:image><lastmod>2024-03-05T05:22:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/02/12/using-blob-storage-from-asp-net-core-with-entra-id-authentication/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/02/azure_blob_rbac_02.png</image:loc><image:title>azure_blob_rbac_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/02/enterprise_app_01.png</image:loc><image:title>enterprise_app_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/02/diagrams.png</image:loc><image:title>diagrams</image:title></image:image><lastmod>2024-03-05T05:22:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/03/04/multi-client-blob-storage-access-using-asp-net-core-with-entra-id-authentication-and-rbac/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/02/diagrams-app-write-multi-tenant-1.png</image:loc><image:title>diagrams-app-write-multi-tenant-1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/02/diagrams-app-write-multi-tenant.png</image:loc><image:title>diagrams-app-write-multi-tenant</image:title></image:image><lastmod>2024-03-04T07:20:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/02/05/secure-an-asp-net-core-blazor-web-app-using-microsoft-entra-id/</loc><lastmod>2024-02-12T21:05:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/01/15/migrate-asp-net-core-blazor-server-to-blazor-web/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/01/blazorweb_migration_01.png</image:loc><image:title>blazorweb_migration_01</image:title></image:image><lastmod>2024-02-12T20:49:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/05/22/blazor-and-csp/</loc><lastmod>2024-02-04T10:52:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/08/21/asp-net-core-logging-using-serilog-and-azure/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/aspnetcore-logging-azure_05.png</image:loc><image:title>aspnetcore-logging-azure_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/aspnetcore-logging-azure_04.png</image:loc><image:title>aspnetcore-logging-azure_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/aspnetcore-logging-azure_03.png</image:loc><image:title>aspnetcore-logging-azure_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/aspnetcore-logging-azure_02.png</image:loc><image:title>aspnetcore-logging-azure_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/aspnetcore-logging-azure_01.png</image:loc><image:title>aspnetcore-logging-azure_01</image:title></image:image><lastmod>2024-08-19T14:21:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/11/08/asp-net-core-scheduling-with-quartz-net-and-signalr-monitoring/</loc><lastmod>2024-01-07T09:16:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2024/01/03/securing-a-blazor-server-application-using-openid-connect-and-security-headers/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2024/01/brandblazor_nohalo_1000x.png</image:loc><image:title>brandblazor_nohalo_1000x</image:title></image:image><lastmod>2024-01-03T07:32:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/05/16/using-multiple-azure-b2c-user-flows-from-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/azureb2c_flows_01.png</image:loc><image:title>azureb2c_flows_01</image:title></image:image><lastmod>2024-01-02T08:28:24+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/03/24/onboarding-new-users-in-an-asp-net-core-application-using-azure-b2c/</loc><lastmod>2024-01-02T08:26:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/03/16/transforming-identity-claims-in-asp-net-core-and-cache/</loc><lastmod>2024-01-02T08:23:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/03/11/create-azure-b2c-users-with-microsoft-graph-and-asp-net-core/</loc><lastmod>2024-01-02T08:21:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/09/06/using-azure-security-groups-in-asp-net-core-with-an-azure-b2c-identity-provider/</loc><lastmod>2024-01-02T08:13:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/07/26/securing-asp-net-core-razor-pages-web-apis-with-azure-b2c-external-and-azure-ad-internal-identities/</loc><lastmod>2024-01-02T08:01:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/02/27/onboarding-users-in-asp-net-core-using-azure-ad-temporary-access-pass-and-microsoft-graph/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/02/phone_aad_04.png</image:loc><image:title>phone_aad_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/02/tap_aad_03.png</image:loc><image:title>tap_aad_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/02/tap_aad_02.png</image:loc><image:title>tap_aad_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/02/tap_aad_01.png</image:loc><image:title>tap_aad_01</image:title></image:image><lastmod>2023-12-31T11:40:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/07/11/invite-external-users-to-azure-ad-using-microsoft-graph-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/07/identity_connector_aad_01.png</image:loc><image:title>identity_connector_aad_01</image:title></image:image><lastmod>2023-12-31T11:37:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/12/18/signing-git-commits-on-windows-and-using-with-github/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/12/gpg_05.png</image:loc><image:title>gpg_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/12/gpg_04.png</image:loc><image:title>gpg_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/12/gpg_03.png</image:loc><image:title>gpg_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/12/gpg_02.png</image:loc><image:title>gpg_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/12/gnupghome_01.png</image:loc><image:title>gnupghome_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/12/gnome_home_01.png</image:loc><image:title>gnome_home_01</image:title></image:image><lastmod>2023-12-19T16:56:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/12/13/securing-a-mudblazor-ui-web-application-using-security-headers-and-microsoft-entra-id/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/12/secure-mudblazor_01.png</image:loc><image:title>secure-mudblazor_01</image:title></image:image><lastmod>2024-05-27T06:27:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/07/03/issue-employee-verifiable-credentials-using-entra-verified-id-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/azuread-vc-employee_05.png</image:loc><image:title>azuread-vc-employee_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/azuread-vc-employee_04.jpg</image:loc><image:title>azuread-vc-employee_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/azuread-vc-employee_02.png</image:loc><image:title>azuread-vc-employee_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/azuread-vc-employee_01.png</image:loc><image:title>azuread-vc-employee_01</image:title></image:image><lastmod>2023-12-03T07:59:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/10/09/issue-and-verify-bbs-verifiable-credentials-using-asp-net-core-and-trinsic-id/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/trinsic-v2-bbs-aspnetcore_wallet_proof_05.png</image:loc><image:title>trinsic-v2-bbs-aspnetcore_wallet_proof_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/trinsic-v2-bbs-aspnetcore_verify_proof.png</image:loc><image:title>trinsic-v2-bbs-aspnetcore_verify_proof</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/trinsic-v2-bbs-aspnetcore_wallet_connect_04.png</image:loc><image:title>trinsic-v2-bbs-aspnetcore_wallet_connect_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/trinsic-v2-bbs-aspnetcore_get_student_diploma_03.png</image:loc><image:title>trinsic-v2-bbs-aspnetcore_get_student_diploma_03</image:title></image:image><lastmod>2023-12-02T10:07:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/12/14/using-multiple-apis-in-blazor-with-azure-ad-authentication/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/multipleapisblazor_aad_03.png</image:loc><image:title>multipleApisBlazor_aad_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/multipleapisblazor_aad_02.png</image:loc><image:title>multipleApisBlazor_aad_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/multipleapisblazor_aad_01.png</image:loc><image:title>multipleApisBlazor_aad_01</image:title></image:image><lastmod>2023-11-29T16:19:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/12/08/using-multiple-apis-in-angular-and-asp-net-core-with-azure-ad-authentication/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/multipleapisangular_aad_04.png</image:loc><image:title>multipleApisAngular_aad_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/multipleapisangular_aad_03.png</image:loc><image:title>multipleApisAngular_aad_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/multipleapisangular_aad_02.png</image:loc><image:title>multipleApisAngular_aad_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/multipleapisangular_aad_01.png</image:loc><image:title>multipleApisAngular_aad_01</image:title></image:image><lastmod>2023-11-29T15:55:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/11/09/implement-a-web-app-and-an-asp-net-core-secure-api-using-azure-ad-which-delegates-to-second-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/11/aad_apis2_app_06.png</image:loc><image:title>aad_apis2_app_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/11/aad_apis2_app_05.png</image:loc><image:title>aad_apis2_app_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/11/aad_apis2_app_04.png</image:loc><image:title>aad_apis2_app_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/11/aad_apis2_app_03.png</image:loc><image:title>aad_apis2_app_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/11/aad_apis2_app_02.png</image:loc><image:title>aad_apis2_app_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/11/aad_apis2_app_01.png</image:loc><image:title>aad_apis2_app_01</image:title></image:image><lastmod>2023-11-29T15:54:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/10/22/using-encrypted-access-tokens-in-azure-with-microsoft-identity-web-and-azure-app-registrations/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/aadtokenencyption_02.png</image:loc><image:title>aadtokenEncyption_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/aadtokenencyption_01.png</image:loc><image:title>aadtokenEncyption_01</image:title></image:image><lastmod>2024-11-17T11:40:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/10/09/using-key-vault-certificates-with-microsoft-identity-web-and-asp-net-core-applications/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/dc_certificates_aad_04.png</image:loc><image:title>dc_certificates_aad_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/dc_certificates_aad_03.png</image:loc><image:title>dc_certificates_aad_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/dc_certificates_aad_02.png</image:loc><image:title>dc_certificates_aad_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/dc_certificates_aad_01.png</image:loc><image:title>dc_certificates_aad_01</image:title></image:image><lastmod>2023-11-29T15:00:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/10/01/implement-azure-ad-client-credentials-flow-using-client-certificates-for-service-apis/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azuread_cc_05.png</image:loc><image:title>azuread_cc_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azuread_cc_04.png</image:loc><image:title>azuread_cc_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azuread_cc_03.png</image:loc><image:title>azuread_cc_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azuread_cc_02.png</image:loc><image:title>azuread_cc_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/09/azuread_cc_01.png</image:loc><image:title>azuread_cc_01</image:title></image:image><lastmod>2023-11-29T14:58:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/10/18/creating-microsoft-teams-meetings-in-asp-net-core-using-microsoft-graph-application-permissions-part-2/</loc><lastmod>2024-01-23T11:49:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/09/20/creating-microsoft-teams-meetings-in-asp-net-core-using-microsoft-graph/</loc><lastmod>2024-08-07T09:36:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/11/13/authentication-with-multiple-identity-providers-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/11/schemes__idp_01.png</image:loc><image:title>schemes__idp_01</image:title></image:image><lastmod>2023-11-13T05:53:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/11/06/using-a-strong-nonce-based-csp-with-angular/</loc><lastmod>2024-10-03T19:53:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/11/01/user-claims-in-asp-net-core-using-openid-connect-authentication/</loc><lastmod>2024-12-05T14:36:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/10/24/secure-an-angular-application-using-microsoft-entra-external-id-and-asp-net-core-with-bff/</loc><lastmod>2024-09-19T15:13:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/10/18/fix-missing-tokens-when-using-downstream-apis-and-microsoft-identity-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/bff-arch-cache_02.png</image:loc><image:title>bff-arch-cache_02</image:title></image:image><lastmod>2023-10-25T01:29:20+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/10/02/implement-a-secure-web-application-using-vue-js-and-an-asp-net-core-server/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/vue-aspnetcore-bff-yarp-dev_01.png</image:loc><image:title>vue-aspnetcore-bff-yarp-dev_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/azure-app-registration_01-1.png</image:loc><image:title>azure-app-registration_01-1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/vue-aspnetcore-bff_01.png</image:loc><image:title>vue-aspnetcore-bff_01</image:title></image:image><lastmod>2023-10-02T06:01:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/09/25/secure-angular-application-using-openiddict-and-asp-net-core-with-bff/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/bff-openiddict-angular-aspnetocre_01.png</image:loc><image:title>bff-openiddict-angular-aspnetocre_01</image:title></image:image><lastmod>2024-10-08T20:23:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/01/09/implement-the-oauth-2-0-token-exchange-delegated-flow-between-an-azure-ad-api-and-an-api-protected-using-openiddict/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/12/oauth_token_exchaneg_aad_openiddict_01.png</image:loc><image:title>oauth_token_exchaneg_aad_openiddict_01</image:title></image:image><lastmod>2024-01-19T11:16:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/09/18/secure-angular-application-using-auth0-and-asp-net-core-with-bff/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/bff-auth0-angular-aspnetocre_01-2.png</image:loc><image:title>bff-auth0-angular-aspnetocre_01-2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/bff-auth0-angular-aspnetocre_01-1.png</image:loc><image:title>bff-auth0-angular-aspnetocre_01-1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/bff-auth0-angular-aspnetocre_01.png</image:loc><image:title>bff-auth0-angular-aspnetocre_01</image:title></image:image><lastmod>2023-09-18T05:52:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/09/11/implement-a-secure-web-application-using-nx-standalone-angular-and-an-asp-net-core-server/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/azure-app-registration_01.png</image:loc><image:title>azure-app-registration_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/bff-arch-development_01.png</image:loc><image:title>bff-arch-development_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/09/bff-arch-production_01.png</image:loc><image:title>bff-arch-production_01</image:title></image:image><lastmod>2025-09-23T12:30:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/08/31/use-multiple-microsoft-entra-verified-id-credentials-in-a-verification-presentation/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/entra_vc_unlockdoor_02.png</image:loc><image:title>entra_vc_unlockdoor_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/entra_vc_unlockdoor_01.png</image:loc><image:title>entra_vc_unlockdoor_01</image:title></image:image><lastmod>2023-08-31T07:51:06+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/08/14/securing-apis-using-asp-net-core-and-oauth-2-0-dpop/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/dpop_aspnetcore_02-2.png</image:loc><image:title>dpop_aspnetcore_02-2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/dpop_aspnetcore_02-1.png</image:loc><image:title>dpop_aspnetcore_02-1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/dpop_aspnetcore_02.png</image:loc><image:title>dpop_aspnetcore_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/08/dpop_aspnetcore_01.png</image:loc><image:title>dpop_aspnetcore_01</image:title></image:image><lastmod>2023-08-14T06:47:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/08/07/use-a-microsoft-entra-verified-id-employee-credential-to-view-paycheck-data/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/07/vc-employee-paycheck_04.png</image:loc><image:title>vc-employee-paycheck_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/07/vc-employee-paycheck_03.png</image:loc><image:title>vc-employee-paycheck_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/07/vc-employee-paycheck_02.png</image:loc><image:title>vc-employee-paycheck_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/07/vc-employee-paycheck_01.png</image:loc><image:title>vc-employee-paycheck_01</image:title></image:image><lastmod>2023-08-07T06:27:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/06/19/reset-passwords-in-asp-net-core-using-delegated-permissions-and-microsoft-graph/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/admin-password-reset-02.png</image:loc><image:title>admin-password-reset-02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/admin-password-reset-01.png</image:loc><image:title>admin-password-reset-01</image:title></image:image><lastmod>2023-06-19T08:09:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/06/12/reset-user-account-passwords-using-microsoft-graph-and-application-permissions/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/password-reset-04.png</image:loc><image:title>password-reset-04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/password-reset-03.png</image:loc><image:title>password-reset-03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/password-reset-02.png</image:loc><image:title>password-reset-02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/06/password-reset-01.png</image:loc><image:title>password-reset-01</image:title></image:image><lastmod>2023-06-12T09:04:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/06/05/asp-net-core-authorization-using-entra-external-id-ciam-and-azure-ad-security-groups/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/azure_ciam_web_groups_04.png</image:loc><image:title>azure_ciam_web_groups_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/azure_ciam_web_groups_03.png</image:loc><image:title>azure_ciam_web_groups_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/azure_ciam_web_groups_02.png</image:loc><image:title>azure_ciam_web_groups_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/azure_ciam_web_groups_01.png</image:loc><image:title>azure_ciam_web_groups_01</image:title></image:image><lastmod>2023-06-05T08:30:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/05/30/asp-net-core-authentication-using-microsoft-entra-external-id-for-customers-ciam/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/azure_ciam_web_02.png</image:loc><image:title>azure_ciam_web_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/azure_ciam_web_01.png</image:loc><image:title>azure_ciam_web_01</image:title></image:image><lastmod>2023-06-05T08:25:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/01/18/using-asp-net-core-controllers-and-razor-pages-from-a-separate-shared-project-or-assembly/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/shared_apis_pages_04.png</image:loc><image:title>shared_apis_pages_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/shared_apis_pages_03.png</image:loc><image:title>shared_apis_pages_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/shared_apis_pages_02.png</image:loc><image:title>shared_apis_pages_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/shared_apis_pages_01.png</image:loc><image:title>shared_apis_pages_01</image:title></image:image><lastmod>2023-05-28T21:17:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/03/20/a-first-look-at-blazor-and-net-8/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/net8_aad_blazor_02.png</image:loc><image:title>net8_aad_blazor_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/net8_aad_blazor_01.png</image:loc><image:title>net8_aad_blazor_01</image:title></image:image><lastmod>2023-05-18T05:54:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/05/15/use-azure-pim-with-groups-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/pim_gp_azure_01.png</image:loc><image:title>pim_gp_azure_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/pim_gp_azure_06.png</image:loc><image:title>pim_gp_azure_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/pim_gp_azure_05.png</image:loc><image:title>pim_gp_azure_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/pim_gp_azure_04.png</image:loc><image:title>pim_gp_azure_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/pim_gp_azure_03.png</image:loc><image:title>pim_gp_azure_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/05/pim_gp_azure_02.png</image:loc><image:title>pim_gp_azure_02</image:title></image:image><lastmod>2023-05-15T08:50:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/05/08/trust-phishing-resistant-mfa-for-cross-tenant-users/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/mfa-cross-tenant_01.png</image:loc><image:title>mfa-cross-tenant_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/mfa-cross-tenant_02.png</image:loc><image:title>mfa-cross-tenant_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/mfa-cross-tenant_03.png</image:loc><image:title>mfa-cross-tenant_03</image:title></image:image><lastmod>2023-05-08T06:18:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/05/01/application-security-context-models/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model_03b.png</image:loc><image:title>security-context-model_03b</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model-bff_01-4.png</image:loc><image:title>security-context-model-bff_01-4</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model-bff_01-3.png</image:loc><image:title>security-context-model-bff_01-3</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model-bff_01-2.png</image:loc><image:title>security-context-model-bff_01-2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model-bff_01-1.png</image:loc><image:title>security-context-model-bff_01-1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model_06.png</image:loc><image:title>security-context-model_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model_05.png</image:loc><image:title>security-context-model_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model_04.png</image:loc><image:title>security-context-model_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model_03.png</image:loc><image:title>security-context-model_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/security-context-model_02.png</image:loc><image:title>security-context-model_02</image:title></image:image><lastmod>2023-05-01T06:19:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/09/19/asp-net-core-api-auth-with-multiple-identity-providers/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/idps_api_01.png</image:loc><image:title>idps_api_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/api_multi_idps_01.png</image:loc><image:title>api_multi_idps_01</image:title></image:image><lastmod>2024-10-23T15:00:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/04/17/provision-azure-iot-hub-devices-using-dps-and-x-509-certificates-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/dps-setup-cert-o1.png</image:loc><image:title>dps-setup-cert-o1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/dps_iothub_web_02.png</image:loc><image:title>dps_iothub_web_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/dps_iothub_web_03.png</image:loc><image:title>dps_iothub_web_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/04/dps_iothub_web_01.png</image:loc><image:title>dps_iothub_web_01</image:title></image:image><lastmod>2023-04-17T05:19:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/02/20/provisioning-x-509-devices-for-azure-iot-hub-using-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/02/azure_dps_cert_03.png</image:loc><image:title>azure_dps_cert_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/02/azure_dps_cert_02.png</image:loc><image:title>azure_dps_cert_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/02/azure_dps_cert_01.png</image:loc><image:title>azure_dps_cert_01</image:title></image:image><lastmod>2023-03-27T21:49:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/03/27/azure-ad-cross-tenant-synchronization/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/tenants-sync_03.png</image:loc><image:title>tenants-sync_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/tenants-sync_04.png</image:loc><image:title>tenants-sync_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/tenants-sync_02.png</image:loc><image:title>tenants-sync_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/tenants-sync_01.png</image:loc><image:title>tenants-sync_01</image:title></image:image><lastmod>2023-03-27T06:11:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/01/02/azure-ad-multi-tenant-azure-app-registration-consent/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/12/aad_multitenante2808b.png</image:loc><image:title>aad_multitenante2808b</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/12/consent-user-portal-noaccess.png</image:loc><image:title>consent-user-portal-noaccess</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/12/consent-delete-01.png</image:loc><image:title>consent-delete-01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/12/consent-user-portal-02b.png</image:loc><image:title>consent-user-portal-02b</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/12/consent-user-portal-02a.png</image:loc><image:title>consent-user-portal-02a</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/12/consent-admin-portal-02.png</image:loc><image:title>consent-admin-portal-02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/12/consent-admin-01.png</image:loc><image:title>consent-admin-01</image:title></image:image><lastmod>2023-03-21T06:28:22+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/03/13/use-azure-ad-access-packages-to-onboard-users-in-an-azure-devops-project/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/aad_access-packages_devops_09.png</image:loc><image:title>aad_access-packages_devops_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/aad_access-packages_devops_08.png</image:loc><image:title>aad_access-packages_devops_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/aad_access-packages_devops_07.png</image:loc><image:title>aad_access-packages_devops_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/aad_access-packages_devops_06.png</image:loc><image:title>aad_access-packages_devops_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/aad_access-packages_devops_05.png</image:loc><image:title>aad_access-packages_devops_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/aad_access-packages_devops_03.png</image:loc><image:title>aad_access-packages_devops_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/aad_access-packages_devops_02.png</image:loc><image:title>aad_access-packages_devops_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/03/aad_access-packages_devops_01.png</image:loc><image:title>aad_access-packages_devops_01</image:title></image:image><lastmod>2023-03-13T05:42:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/03/06/auto-sign-out-using-asp-net-core-razor-pages-with-azure-ad-b2c/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/02/autosignoutcache_01.png</image:loc><image:title>autosignoutcache_01</image:title></image:image><lastmod>2023-03-06T06:40:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/10/25/create-and-issuer-verifiable-credentials-in-asp-net-core-using-azure-ad/</loc><lastmod>2024-05-21T09:24:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/02/20/using-hangfire-with-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/aspnetcorehangfire_02.png</image:loc><image:title>aspnetcorehangfire_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/aspnetcorehangfire_01.png</image:loc><image:title>aspnetcorehangfire_01</image:title></image:image><lastmod>2023-07-13T13:45:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/01/11/protecting-legacy-apis-with-an-asp-net-core-yarp-reverse-proxy-and-azure-ad-oauth/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/rv_yarp_04.png</image:loc><image:title>rv_yarp_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/rv_yarp_03.png</image:loc><image:title>rv_yarp_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/rv_yarp_02.png</image:loc><image:title>rv_yarp_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/rv_yarp_01.png</image:loc><image:title>rv_yarp_01</image:title></image:image><lastmod>2023-02-19T07:46:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/02/14/use-multiple-identity-providers-from-a-blazor-wasm-asp-net-core-app-secured-using-bff/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/multi-idp-blazor_03.png</image:loc><image:title>multi-idp-blazor_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/multi-idp-blazor_02.png</image:loc><image:title>multi-idp-blazor_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/multi-idp-blazor_01.png</image:loc><image:title>multi-idp-blazor_01</image:title></image:image><lastmod>2023-11-30T11:42:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/01/30/using-multi-tenant-aad-delegated-apis-from-different-tenants/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/multi-tenant-api-consent_03.png</image:loc><image:title>multi-tenant-api-consent_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/multi-tenant-api-consent_02.png</image:loc><image:title>multi-tenant-api-consent_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/multi-tenant-api-consent_01.png</image:loc><image:title>multi-tenant-api-consent_01</image:title></image:image><lastmod>2023-01-30T06:29:06+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/01/23/basic-authentication-in-asp-net-core/</loc><lastmod>2023-01-23T04:49:22+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2023/01/16/implementing-secure-microsoft-graph-application-clients-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/mi-aad-03-1.png</image:loc><image:title>mi-aad-03-1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/mi-aad-04.png</image:loc><image:title>mi-aad-04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/mi-aad-03.png</image:loc><image:title>mi-aad-03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/mi-aad-02.png</image:loc><image:title>mi-aad-02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2023/01/mi-aad-01.png</image:loc><image:title>mi-aad-01</image:title></image:image><lastmod>2025-02-06T11:14:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/11/20/using-microsoft-graph-api-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/11/aspnetcoregraphapi_01.png</image:loc><image:title>AspNetCoreGraphApi_01</image:title></image:image><lastmod>2023-01-15T18:19:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/09/18/signalr-group-messages-with-ngrx-and-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/09/angularngrxsignalr_01.png</image:loc><image:title>AngularNgrxSignalR_01</image:title></image:image><lastmod>2023-01-08T12:07:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/10/16/securing-an-angular-signalr-client-using-jwt-tokens-with-asp-net-core-and-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/10/signalr_seq_01.png</image:loc><image:title>signalr_Seq_01</image:title></image:image><lastmod>2023-01-08T11:32:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/09/29/using-ef-core-and-sqlite-to-persist-signalr-group-messages-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/09/signlargroups.gif</image:loc><image:title>signlarGroups</image:title></image:image><lastmod>2023-01-08T11:31:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/05/13/uploading-and-sending-image-messages-with-asp-net-core-signalr/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/05/dm_signalr_01.gif</image:loc><image:title>dm_signalr_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/05/dm_signalr_02.gif</image:loc><image:title>dm_signalr_02</image:title></image:image><lastmod>2023-01-08T10:15:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/10/23/implementing-custom-policies-in-asp-net-core-using-the-httpcontext/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/10/auth_policy_01.png</image:loc><image:title>auth_policy_01</image:title></image:image><lastmod>2023-01-08T09:51:38+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/12/05/sending-direct-messages-using-signalr-with-asp-net-core-and-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/12/dm_signalr_013.gif</image:loc><image:title>dm_signalr_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/12/dm_signalr_012.gif</image:loc><image:title>dm_signalr_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/12/dm_signalr_011.gif</image:loc><image:title>dm_signalr_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/12/dm_signalr_01.gif</image:loc><image:title>dm_signalr_01</image:title></image:image><lastmod>2023-01-08T08:49:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/09/12/getting-started-with-signalr-using-asp-net-core-and-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/09/signalr_angular_aspnetcore_01png.png</image:loc><image:title>signalr_angular_aspnetcore_01png</image:title></image:image><lastmod>2023-01-08T08:49:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/03/19/using-message-pack-with-asp-net-core-signalr/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/signalr_server_01.png</image:loc><image:title>signalr_server_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/signalr_client_02.png</image:loc><image:title>signalr_client_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/signalrmessagepack_03.png</image:loc><image:title>SignalRMessagePack_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/signalrmessagepack_02.png</image:loc><image:title>SignalRMessagePack_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/signalrmessagepack_01-exe.png</image:loc><image:title>SignalRMessagePack_01.exe</image:title></image:image><lastmod>2023-01-08T08:33:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/10/30/implementing-user-management-with-asp-net-core-identity-and-custom-claims/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/10/customclaims_01.png</image:loc><image:title>customClaims_01</image:title></image:image><lastmod>2023-01-07T16:22:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/10/03/implement-the-on-behalf-of-flow-between-an-azure-ad-protected-api-and-an-api-protected-using-openiddict/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/obo_aad_openiddict_01.png</image:loc><image:title>obo_aad_openiddict_01</image:title></image:image><lastmod>2022-12-23T21:54:26+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/12/03/securing-an-asp-net-core-api-which-uses-multiple-access-tokens/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/accessapi_mutlitokenpolicy_01-1.png</image:loc><image:title>accessapi_mutlitokenpolicy_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/accessapi_mutlitokenpolicy_03.png</image:loc><image:title>accessApi_mutliTokenPolicy_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/accessapi_mutlitokenpolicy_02.png</image:loc><image:title>accessApi_mutliTokenPolicy_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/12/accessapi_mutlitokenpolicy_01.png</image:loc><image:title>accessApi_mutliTokenPolicy_01</image:title></image:image><lastmod>2024-04-24T15:03:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/12/06/implement-feature-management-in-blazor-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/11/featuremananagement_01.png</image:loc><image:title>featuremananagement_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/11/featuremananagement_03.png</image:loc><image:title>featuremananagement_03</image:title></image:image><lastmod>2023-12-11T12:42:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/11/28/sharing-microsoft-graph-permissions-and-solution-azure-app-registrations/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/11/graphaspnetcore_01.png</image:loc><image:title>graphaspnetcore_01</image:title></image:image><lastmod>2022-11-28T06:57:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/11/21/use-multiple-azure-ad-access-tokens-in-an-asp-net-core-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/11/multiapiaad_02.png</image:loc><image:title>multiapiaad_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/11/multiapiaad_01.png</image:loc><image:title>multiapiaad_01</image:title></image:image><lastmod>2022-11-22T06:59:26+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/11/15/create-azure-app-registration-for-api-using-powershell/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/powershell_app-reg-02.png</image:loc><image:title>powershell_app-reg-02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/powershell_app-reg-01.png</image:loc><image:title>powershell_app-reg-01</image:title></image:image><lastmod>2023-01-04T19:28:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/10/31/switch-tenants-in-an-asp-net-core-app-using-azure-ad-with-multi-tenants/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/multi-tenant-select-04.png</image:loc><image:title>multi-tenant-select-04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/multi-tenant-select-03.png</image:loc><image:title>multi-tenant-select-03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/multi-tenant-select-02.png</image:loc><image:title>multi-tenant-select-02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/multi-tenant-select-01.png</image:loc><image:title>multi-tenant-select-01</image:title></image:image><lastmod>2022-10-31T06:47:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/10/17/is-scanning-qr-codes-for-authentication-safe/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_verifier_vc_01.png</image:loc><image:title>phishing_verifier_vc_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_01.png</image:loc><image:title>phishing_01</image:title></image:image><lastmod>2022-10-21T12:57:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/10/10/force-phishing-resistant-authentication-in-an-asp-net-core-application-using-azure-ad/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_resistent_ca_08.png</image:loc><image:title>phishing_resistent_ca_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_resistent_ca_07.png</image:loc><image:title>phishing_resistent_ca_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_resistent_ca_06.png</image:loc><image:title>phishing_resistent_ca_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_resistent_ca_05.png</image:loc><image:title>phishing_resistent_ca_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_resistent_ca_04.png</image:loc><image:title>phishing_resistent_ca_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_resistent_ca_03.png</image:loc><image:title>phishing_resistent_ca_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_resistent_ca_02.png</image:loc><image:title>phishing_resistent_ca_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/10/phishing_resistent_ca_01.png</image:loc><image:title>phishing_resistent_ca_01</image:title></image:image><lastmod>2022-10-10T05:39:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/09/12/setup-application-client-in-azure-app-registration-with-app-roles-to-use-a-web-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/5_azure_app_reg__expose_role.png</image:loc><image:title>5_azure_app_reg__expose_role</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/4_azure_app_reg__expose_role_manifest.png</image:loc><image:title>4_azure_app_reg__expose_role_manifest</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/3_azure_app_reg__expose_role.png</image:loc><image:title>3_azure_app_reg__expose_role</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/2_azure_app_reg__expose.png</image:loc><image:title>2_azure_app_reg__expose</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/1_azure_app_reg.png</image:loc><image:title>1_azure_app_reg</image:title></image:image><lastmod>2022-09-12T05:51:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/09/05/implement-a-grpc-api-with-openiddict-and-oauth-the-client-credentials-flow/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/09/openiddictgrpc_01.png</image:loc><image:title>openiddictgrpc_01</image:title></image:image><lastmod>2022-09-05T05:52:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/08/29/secure-asp-net-core-grpc-api-hosted-in-a-linux-kestrel-azure-app-service/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/08/appservicegrpc_03.png</image:loc><image:title>appservicegrpc_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/08/appservicegrpc_02.png</image:loc><image:title>appservicegrpc_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/08/appservicegrpc_01.png</image:loc><image:title>appservicegrpc_01</image:title></image:image><lastmod>2022-09-03T08:16:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/08/15/creating-dotnet-solution-and-project-templates/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/08/dotnet_template_02.png</image:loc><image:title>dotnet_template_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/08/dotnet_template_01.png</image:loc><image:title>dotnet_template_01</image:title></image:image><lastmod>2022-08-15T20:29:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/08/08/debug-logging-microsoft-identity-client-and-the-msal-oauth-client-credentials-flow/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/08/clientassertion_token_01.png</image:loc><image:title>clientassertion_token_01</image:title></image:image><lastmod>2022-08-08T06:02:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/08/02/workarounds-to-disable-azure-ad-user-using-microsoft-graph-and-an-application-scope/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/07/microsoft_graph_01.png</image:loc><image:title>microsoft_graph_01</image:title></image:image><lastmod>2022-08-03T03:58:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/04/12/securing-blazor-web-assembly-using-cookies-and-auth0/</loc><lastmod>2022-07-09T11:09:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/07/04/add-fido2-mfa-to-an-openiddict-identity-provider-using-asp-net-core-identity/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/07/oidc_fido2_idp_02.png</image:loc><image:title>oidc_fido2_idp_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/07/oidc_fido2_idp_03.png</image:loc><image:title>oidc_fido2_idp_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/07/oidc_fido2_idp_01.png</image:loc><image:title>oidc_fido2_idp_01</image:title></image:image><lastmod>2022-07-06T06:01:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/04/20/implement-azure-ad-continuous-access-evaluation-in-an-asp-net-core-razor-page-app-using-a-web-api/</loc><lastmod>2022-06-13T06:20:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/05/23/implement-azure-ad-continuous-access-evaluation-cae-step-up-with-asp-net-core-blazor-using-a-web-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/caesetup_02.png</image:loc><image:title>caesetup_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/caesetup_01.png</image:loc><image:title>caesetup_01</image:title></image:image><lastmod>2022-06-13T06:20:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/05/30/implement-azure-ad-continuous-access-evaluation-cae-standalone-with-blazor-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/cae_id_token_01.png</image:loc><image:title>cae_id_token_01</image:title></image:image><lastmod>2022-06-13T06:20:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/06/13/force-mfa-in-blazor-using-azure-ad-and-continuous-access/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/06/image.png</image:loc><image:title>image</image:title></image:image><lastmod>2022-06-26T20:38:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/06/06/using-math-expressions-in-github-markdown/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/markdown_math_06.png</image:loc><image:title>markdown_math_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/markdown_math_07.png</image:loc><image:title>markdown_math_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/markdown_math_05.png</image:loc><image:title>markdown_math_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/markdown_math_04.png</image:loc><image:title>markdown_math_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/markdown_math_03.png</image:loc><image:title>markdown_math_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/markdown_math_02.png</image:loc><image:title>markdown_math_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/markdown_math_01.png</image:loc><image:title>markdown_math_01</image:title></image:image><lastmod>2022-06-06T07:53:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/05/09/use-a-gateway-service-for-a-software-ui-with-micro-services-architecture/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/gateway_02.png</image:loc><image:title>gateway_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/05/gateway_01.png</image:loc><image:title>gateway_01</image:title></image:image><lastmod>2022-05-10T12:34:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/05/02/implement-an-openiddict-identity-provider-using-asp-net-core-identity-with-keycloak-federation/</loc><lastmod>2023-07-06T05:38:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/04/19/securing-multiple-auth0-apis-in-asp-net-core-using-oauth-bearer-tokens/</loc><lastmod>2022-04-17T15:27:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/05/17/securing-multiple-identity-provider-oauth-bearer-tokens-in-an-asp-net-core-api/</loc><lastmod>2022-04-17T15:25:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/04/04/implementing-oauth2-client-credentials-flow-app-to-app-security-using-azure-ad-non-interactive/</loc><lastmod>2022-04-04T05:59:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/03/28/implementing-oauth2-app-to-app-security-using-azure-ad-from-a-web-app/</loc><lastmod>2022-03-29T23:47:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/02/21/implementing-authorization-in-blazor-asp-net-core-applications-using-azure-ad-security-groups/</loc><lastmod>2022-09-07T08:42:04+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/02/14/problems-with-online-user-authentication-when-using-self-sovereign-identity/</loc><lastmod>2022-02-14T07:19:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/01/31/implement-a-pwa-using-blazor-with-bff-security-and-azure-b2c/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2022/01/blazorbffazureb2c-1.png</image:loc><image:title>blazorBFFAzureB2C</image:title></image:image><lastmod>2022-04-02T13:54:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/02/07/using-blazor-with-a-yarp-downstream-api-protected-using-certificate-authentication/</loc><lastmod>2024-10-17T11:28:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/01/17/use-fido2-passwordless-authentication-with-azure-ad/</loc><lastmod>2022-01-17T07:03:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/12/20/use-calendar-mailbox-settings-and-teams-presence-in-asp-net-core-hosted-blazor-wasm-with-microsoft-graph/</loc><lastmod>2022-01-15T19:06:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/01/10/comparing-the-backend-for-frontend-bff-security-architecture-with-an-spa-ui-using-a-public-api/</loc><lastmod>2022-01-10T05:52:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2022/01/03/secure-a-blazor-wasm-asp-net-core-hosted-app-using-bff-and-openiddict/</loc><lastmod>2022-11-23T14:56:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/04/11/implementing-openid-implicit-flow-using-openiddict-and-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/04/openiddict-angular-implicitflow_05.png</image:loc><image:title>openiddict-angular-implicitflow_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/04/openiddict-angular-implicitflow_04.png</image:loc><image:title>openiddict-angular-implicitflow_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/04/openiddict-angular-implicitflow_03.png</image:loc><image:title>openiddict-angular-implicitflow_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/04/openiddict-angular-implicitflow_02.png</image:loc><image:title>openiddict-angular-implicitflow_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/04/openiddict-angular-implicitflow_01.png</image:loc><image:title>openiddict-angular-implicitflow_01</image:title></image:image><lastmod>2024-11-16T19:40:38+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/08/09/send-emails-using-microsoft-graph-api-and-a-desktop-client/</loc><lastmod>2024-03-20T07:09:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/10/11/challenges-to-self-sovereign-identity/</loc><lastmod>2023-09-04T14:15:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/05/31/verify-vaccination-data-using-zero-knowledge-proofs-with-asp-net-core-and-mattr/</loc><lastmod>2021-12-13T06:32:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/05/10/present-and-verify-verifiable-credentials-in-asp-net-core-using-decentralized-identities-and-mattr/</loc><lastmod>2021-12-13T06:31:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/05/03/create-an-oidc-credential-issuer-with-mattr-and-asp-net-core/</loc><lastmod>2021-12-13T06:30:20+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/03/29/getting-started-with-self-sovereign-identity-ssi/</loc><lastmod>2021-12-13T06:28:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/12/13/implement-compound-proof-bbs-verifiable-credentials-using-asp-net-core-and-mattr/</loc><lastmod>2021-12-13T06:19:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/12/06/blazor-wasm-hosted-in-asp-net-core-templates-with-azure-b2c-and-azure-ad-authentication-using-backend-for-frontend-bff/</loc><lastmod>2022-03-13T15:07:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/11/22/implement-certificate-authentication-in-asp-net-core-for-an-azure-b2c-api-connector/</loc><lastmod>2021-11-22T07:40:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/11/15/add-extra-claims-to-an-azure-b2c-user-flow-using-api-connectors/</loc><lastmod>2021-11-22T07:39:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/05/14/securing-an-angular-application-using-azure-b2c/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/angular_b2c_03.png</image:loc><image:title>angular_b2c_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/angular_b2c_02.png</image:loc><image:title>angular_b2c_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/angular_b2c_01.png</image:loc><image:title>angular_b2c_01</image:title></image:image><lastmod>2021-11-22T07:36:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/04/05/creating-verifiable-credentials-in-asp-net-core-for-decentralized-identities-using-trinsic/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/ssi_cred_03.png</image:loc><image:title>ssi_cred_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/ssi_cred_02.png</image:loc><image:title>ssi_cred_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/ssi_cred_01.png</image:loc><image:title>ssi_cred_01</image:title></image:image><lastmod>2023-03-28T21:39:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/10/04/implement-a-secure-api-and-a-blazor-app-in-the-same-asp-net-core-project-with-azure-ad-authentication/</loc><lastmod>2021-10-04T07:11:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/09/13/implementing-angular-code-flow-with-pkce-using-node-oidc-provider/</loc><lastmod>2021-09-13T06:09:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/01/07/experiments-with-entity-framework-7-and-asp-net-5-mvc-6/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/efcoresqlitemigratios_01.png</image:loc><image:title>efcoreSQLiteMigratios_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/ef7_asp_net5_mvc_6_02.png</image:loc><image:title>EF7_ASP_NET5_MVC_6_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/ef7_asp_net5_mvc_6_01.png</image:loc><image:title>EF7_ASP_NET5_MVC_6_01</image:title></image:image><lastmod>2021-08-29T12:40:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/11/02/implement-a-blazor-full-text-search-using-azure-cognitive-search/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/blazor_search_03.png</image:loc><image:title>blazor_Search_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/blazor_search_02.png</image:loc><image:title>blazor_Search_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/blazor_search_01.png</image:loc><image:title>blazor_Search_01</image:title></image:image><lastmod>2021-08-20T08:25:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/10/29/using-azure-cognitive-search-suggesters-in-asp-net-core-and-autocomplete/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/searchazuresuggester_01.gif</image:loc><image:title>searchAzureSuggester_01</image:title></image:image><lastmod>2021-08-20T08:07:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/10/19/implement-a-full-text-search-using-azure-cognitive-search-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/azurecognativesearch_07.png</image:loc><image:title>azureCognativeSearch_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/azurecognativesearch_06.png</image:loc><image:title>azureCognativeSearch_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/azurecognativesearch_05.png</image:loc><image:title>azureCognativeSearch_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/azurecognativesearch_04.png</image:loc><image:title>azureCognativeSearch_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/azurecognativesearch_03.png</image:loc><image:title>azureCognativeSearch_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/azurecognativesearch_02.png</image:loc><image:title>azureCognativeSearch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/10/azurecognativesearch_01.png</image:loc><image:title>azureCognativeSearch_01</image:title></image:image><lastmod>2021-08-20T07:50:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/08/02/securing-an-angular-app-which-uses-multiple-identity-providers/</loc><lastmod>2021-08-11T05:45:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/06/28/sign-in-using-multiple-clients-or-tenants-in-asp-net-core-and-azure-ad/</loc><lastmod>2024-04-16T09:48:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/06/10/integration-testing-for-asp-net-core-using-ef-core-cosmos-with-xunit-and-azure-devops/</loc><lastmod>2021-10-02T20:05:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/05/24/secure-an-angular-spa-and-an-asp-net-core-api-using-auth0/</loc><lastmod>2021-05-24T06:23:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/04/26/securing-an-asp-net-core-app-and-web-api-using-windows-authentication/</loc><lastmod>2023-04-12T13:50:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/02/08/adding-http-headers-to-improve-security-in-an-asp-net-mvc-core-application/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/02/http_headers_07.png</image:loc><image:title>http_headers_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/02/https_headers_04.png</image:loc><image:title>https_headers_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/02/https_headers_03.png</image:loc><image:title>https_headers_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/02/https_headers_02.png</image:loc><image:title>https_headers_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/02/https_headers_01.png</image:loc><image:title>https_headers_01</image:title></image:image><lastmod>2021-04-07T06:28:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/03/23/setting-dynamic-metadata-for-blazor-web-assembly/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/blazor_metadara_twitter.png</image:loc><image:title>blazor_metadara_twitter</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/blazor_metadara_slack.png</image:loc><image:title>blazor_metadara_slack</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/blazor_metadara_msteams.png</image:loc><image:title>blazor_metadara_MsTeams</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/blazor_metadara_linkedin.png</image:loc><image:title>blazor_metadara_LinkedIn</image:title></image:image><lastmod>2021-03-24T12:17:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/03/17/the-authentication-pyramid/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/authpyramid_02.png</image:loc><image:title>authPyramid_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/authenticator_mfa_01.png</image:loc><image:title>authenticator_mfa_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/authpyramid_01.png</image:loc><image:title>authPyramid_01</image:title></image:image><lastmod>2021-03-19T23:07:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/03/08/securing-blazor-web-assembly-using-cookies/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/blazorauthncookie_03.png</image:loc><image:title>blazorAuthnCookie_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/blazorauthncookie_02.png</image:loc><image:title>blazorAuthnCookie_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/03/blazorauthncookie_01.png</image:loc><image:title>blazorAuthnCookie_01</image:title></image:image><lastmod>2021-12-17T13:24:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/05/29/login-and-use-asp-net-core-api-with-azure-ad-auth-and-user-access-tokens/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_13.png</image:loc><image:title>appRegistrationsUIApi_13</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_12.png</image:loc><image:title>appRegistrationsUIApi_12</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_11.png</image:loc><image:title>appRegistrationsUIApi_11</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_10.png</image:loc><image:title>appRegistrationsUIApi_10</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_09.png</image:loc><image:title>appRegistrationsUIApi_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_08.png</image:loc><image:title>appRegistrationsUIApi_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_07.png</image:loc><image:title>appRegistrationsUIApi_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_06.png</image:loc><image:title>appRegistrationsUIApi_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_05.png</image:loc><image:title>appRegistrationsUIApi_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/appregistrationsuiapi_04.png</image:loc><image:title>appRegistrationsUIApi_04</image:title></image:image><lastmod>2024-01-10T13:47:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/06/08/angular-spa-with-an-asp-net-core-api-using-azure-ad-auth-and-user-access-tokens/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_spa_04.png</image:loc><image:title>aad_spa_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_spa_03.png</image:loc><image:title>aad_spa_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_spa_02.png</image:loc><image:title>aad_spa_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_spa_01.png</image:loc><image:title>aad_spa_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_spa_00.png</image:loc><image:title>aad_spa_00</image:title></image:image><lastmod>2024-04-08T05:09:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/02/16/adding-asp-net-core-authorization-for-an-azure-blob-storage-and-azure-ad-users-using-role-assignments/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureassignedrolestorage_03.png</image:loc><image:title>azureAssignedRoleStorage_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureassignedrolestorage_02.png</image:loc><image:title>azureAssignedRoleStorage_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureassignedrolestorage_01.png</image:loc><image:title>azureAssignedRoleStorage_01</image:title></image:image><lastmod>2021-03-01T07:52:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/03/01/using-azure-ad-groups-authorization-in-asp-net-core-for-an-azure-blob-storage/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureadgroupsstorage_07.png</image:loc><image:title>azureAdGroupsStorage_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureadgroupsstorage_06.png</image:loc><image:title>azureAdGroupsStorage_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureadgroupsstorage_05.png</image:loc><image:title>azureAdGroupsStorage_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureadgroupsstorage_04.png</image:loc><image:title>azureAdGroupsStorage_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureadgroupsstorage_03.png</image:loc><image:title>azureAdGroupsStorage_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureadgroupsstorage_02.png</image:loc><image:title>azureAdGroupsStorage_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azureadgroupsstorage_01.png</image:loc><image:title>azureAdGroupsStorage_01</image:title></image:image><lastmod>2021-03-01T07:52:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/02/08/secure-azure-ad-user-account-file-upload-with-azure-ad-storage-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_10.png</image:loc><image:title>azureStorageUpload_user_aad_10</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_09.png</image:loc><image:title>azureStorageUpload_user_aad_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_08.png</image:loc><image:title>azureStorageUpload_user_aad_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_07.png</image:loc><image:title>azureStorageUpload_user_aad_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_06.png</image:loc><image:title>azureStorageUpload_user_aad_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_05.png</image:loc><image:title>azureStorageUpload_user_aad_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_04.png</image:loc><image:title>azureStorageUpload_user_aad_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_03.png</image:loc><image:title>azureStorageUpload_user_aad_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_02.png</image:loc><image:title>azureStorageUpload_user_aad_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/azurestorageupload_user_aad_01.png</image:loc><image:title>azureStorageUpload_user_aad_01</image:title></image:image><lastmod>2021-03-01T06:47:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/02/19/require-user-password-verification-with-asp-net-core-identity-to-access-razor-page/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/userverify.gif</image:loc><image:title>userVerify</image:title></image:image><lastmod>2021-02-25T19:53:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/02/24/implementing-oauth-pushed-authorisation-requests-in-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/02/par_angular_01.png</image:loc><image:title>par_angular_01</image:title></image:image><lastmod>2021-02-24T12:59:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/12/18/openid-connect-back-channel-logout-using-azure-redis-cache-and-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/BC_Redis_Azure_03.png</image:loc><image:title>BC_Redis_Azure_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/BC_Redis_Azure_02.png</image:loc><image:title>BC_Redis_Azure_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/BC_Redis_Azure_01.png</image:loc><image:title>BC_Redis_Azure_01</image:title></image:image><lastmod>2021-02-04T19:07:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/01/05/azure-ad-access-token-lifetime-policy-management-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/tokenmanagement_aad_05.png</image:loc><image:title>tokenManagement_aad_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/tokenmanagement_aad_04.png</image:loc><image:title>tokenManagement_aad_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/tokenmanagement_aad_03.png</image:loc><image:title>tokenManagement_aad_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/tokenmanagement_aad_02.png</image:loc><image:title>tokenManagement_aad_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/tokenpolicyoverview_01.png</image:loc><image:title>tokenPolicyOverview_01</image:title></image:image><lastmod>2023-05-17T12:32:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/01/28/implement-oauth-device-code-flow-with-azure-ad-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/aad_devicecodeflow_07.gif</image:loc><image:title>aad_deviceCodeflow_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/aad_devciecode_03.png</image:loc><image:title>aad_devciecode_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/aad_devciecode_02.png</image:loc><image:title>aad_devciecode_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/aad_devciecode_01.png</image:loc><image:title>aad_devciecode_01</image:title></image:image><lastmod>2021-02-01T10:33:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2021/02/01/implement-app-roles-authorization-with-azure-ad-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_09.png</image:loc><image:title>azuread_approles_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_08.png</image:loc><image:title>azuread_approles_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_07.png</image:loc><image:title>azuread_approles_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_06.png</image:loc><image:title>azuread_approles_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_05.png</image:loc><image:title>azuread_approles_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_04.png</image:loc><image:title>azuread_approles_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_03.png</image:loc><image:title>azuread_approles_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_02.png</image:loc><image:title>azuread_approles_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2021/01/azuread_approles_01.png</image:loc><image:title>azuread_approles_01</image:title></image:image><lastmod>2022-11-09T09:10:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/09/07/getting-started-with-angular-and-redux/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/09/angular_redux_03.png</image:loc><image:title>angular_redux_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/09/angular_redux_02.png</image:loc><image:title>angular_redux_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/09/angular_redux_01.png</image:loc><image:title>angular_redux_01</image:title></image:image><lastmod>2021-01-22T15:54:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/09/09/asp-net-core-action-arguments-validation-using-an-actionfilter/</loc><lastmod>2021-01-20T07:38:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/09/08/angular-2-auto-save-undo-and-redo/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/09/angular2autosaveundoredo_021.png</image:loc><image:title>angular2autosaveundoredo_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/09/angular2autosaveundoredo_03.png</image:loc><image:title>angular2autosaveundoredo_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/09/angular2autosaveundoredo_02.png</image:loc><image:title>angular2autosaveundoredo_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/09/angular2autosaveundoredo_01.png</image:loc><image:title>angular2autosaveundoredo_01</image:title></image:image><lastmod>2021-01-20T07:37:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/08/29/implementing-undo-redo-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/08/undoredosql_021.png</image:loc><image:title>undoRedosql_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/08/undoredosql_02.png</image:loc><image:title>undoRedosql_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/08/undoredofiddler_01.png</image:loc><image:title>undoRedofiddler_01</image:title></image:image><lastmod>2021-01-20T07:31:35+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/01/03/requiring-mfa-for-admin-pages-in-an-asp-net-core-identity-application/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/12/identitystandalonemfa_02.png</image:loc><image:title>IdentityStandaloneMfa_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/12/identitystandalonemfa_01.png</image:loc><image:title>IdentityStandaloneMfa_01</image:title></image:image><lastmod>2020-12-11T11:04:20+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/12/18/send-mfa-signin-requirement-to-openid-connect-server-using-asp-net-core-identity-and-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/12/acr_values-1.png</image:loc><image:title>acr_values</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/12/acr_values.png</image:loc><image:title>acr_values</image:title></image:image><lastmod>2020-12-11T11:03:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/12/16/force-asp-net-core-openid-connect-client-to-require-mfa/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/12/require_mfa_oidc_03.png</image:loc><image:title>require_mfa_oidc_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/12/require_mfa_oidc_02.png</image:loc><image:title>require_mfa_oidc_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/12/require_mfa_oidc_01.png</image:loc><image:title>require_mfa_oidc_01</image:title></image:image><lastmod>2020-12-11T11:02:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/02/20/asp-net-core-oauth-device-flow-client-with-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/device_flow_06.png</image:loc><image:title>device_flow_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/device_flow_05.png</image:loc><image:title>device_flow_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/device_flow_04.png</image:loc><image:title>device_flow_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/device_flow_03.png</image:loc><image:title>device_flow_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/device_flow_02.png</image:loc><image:title>device_flow_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/device_flow_01.png</image:loc><image:title>device_flow_01</image:title></image:image><lastmod>2020-12-11T10:59:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/05/10/handling-access-tokens-for-private-apis-in-asp-net-core/</loc><lastmod>2021-01-21T18:05:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/02/02/securing-an-asp-net-core-mvc-application-which-uses-a-secure-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/02/hybridapi_011.png</image:loc><image:title>hybridApi_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/02/hybridapi_01.png</image:loc><image:title>hybridApi_01</image:title></image:image><lastmod>2020-12-14T20:35:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/03/25/grpc-bi-directional-streaming-with-razor-pages-and-a-hosted-service-grpc-client/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/grpc_streaming_duplex_03.png</image:loc><image:title>gRPC_streaming_duplex_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/grpc_streaming_duplex_02.png</image:loc><image:title>gRPC_streaming_duplex_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/grpc_streaming_duplex_01.png</image:loc><image:title>gRPC_streaming_duplex_01</image:title></image:image><lastmod>2021-01-10T01:28:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/03/08/running-razor-pages-and-a-grpc-service-in-a-single-asp-net-core-application/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/secure_grpc_pr_03.png</image:loc><image:title>Secure_gRpc_PR_03</image:title></image:image><lastmod>2020-11-25T21:45:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/03/06/security-experiments-with-grpc-and-asp-net-core-3-0/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/secure_grpc_02.png</image:loc><image:title>Secure_gRpc_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/secure_grpc_01.png</image:loc><image:title>Secure_gRpc_01</image:title></image:image><lastmod>2020-11-25T21:44:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/10/18/using-an-odata-client-with-an-asp-net-core-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/10/aspnet_core_odata_client_011.png</image:loc><image:title>aspnet_core_odata_client_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/10/aspnet_core_odata_client_01.png</image:loc><image:title>aspnet_core_odata_client_01</image:title></image:image><lastmod>2020-11-22T20:42:26+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/10/12/odata-with-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/10/aspnet_core_odata_01.png</image:loc><image:title>aspnet_core_odata_01</image:title></image:image><lastmod>2022-04-07T12:26:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/01/29/securing-a-vue-js-app-using-openid-connect-code-flow-with-pkce-and-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/vue-js-oidc-client_05.png</image:loc><image:title>vue-js-oidc-client_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/vue-js-oidc-client_04.png</image:loc><image:title>vue-js-oidc-client_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/vue-js-oidc-client_03.png</image:loc><image:title>vue-js-oidc-client_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/vue-js-oidc-client_02.png</image:loc><image:title>vue-js-oidc-client_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/vue-js-oidc-client_01.png</image:loc><image:title>vue-js-oidc-client_01</image:title></image:image><lastmod>2022-07-01T03:52:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/10/04/building-and-securing-an-asp-net-core-api-with-a-hosted-vue-js-ui/</loc><lastmod>2020-09-12T19:02:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/09/01/using-digital-signatures-to-check-integrity-of-cipher-texts-in-asp-net-core-razor-pages/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/aspnetcore_encryptedmessages_03.png</image:loc><image:title>aspnetcore_encryptedMessages_03</image:title></image:image><lastmod>2020-09-04T19:04:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/08/19/symmetric-and-asymmetric-encryption-in-net-core/</loc><lastmod>2022-07-24T00:53:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/08/22/encrypting-texts-for-an-identity-in-asp-net-core-razor-pages-using-aes-and-rsa/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/aspnetcore_encryptedmessages_02.png</image:loc><image:title>aspnetcore_encryptedMessages_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/08/aspnetcore_encryptedmessages_01.png</image:loc><image:title>aspnetcore_encryptedMessages_01</image:title></image:image><lastmod>2020-09-01T05:43:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/11/09/asp-net-core-mvc-ajax-form-requests-using-jquery-unobtrusive/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/11/ajax_mvc_01.png</image:loc><image:title>ajax_mvc_01</image:title></image:image><lastmod>2020-09-24T20:49:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/08/06/asp-net-core-identity-with-fido2-webauthn-mfa/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/08/aspnetcore_fido_08.png</image:loc><image:title>aspnetcore_fido_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/08/aspnetcore_fido_07.png</image:loc><image:title>aspnetcore_fido_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/08/aspnetcore_fido_06.png</image:loc><image:title>aspnetcore_fido_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/08/aspnetcore_fido_05.png</image:loc><image:title>aspnetcore_fido_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/08/aspnetcore_fido_04.png</image:loc><image:title>aspnetcore_fido_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/08/aspnetcore_fido_03.png</image:loc><image:title>aspnetcore_fido_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/08/aspnetcore_fido_02.png</image:loc><image:title>aspnetcore_fido_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/08/aspnetcore_fido_01.png</image:loc><image:title>aspnetcore_fido_01</image:title></image:image><lastmod>2020-08-28T12:52:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/10/18/adding-fido2-passwordless-authentication-to-an-asp-net-core-identity-app/</loc><lastmod>2020-08-28T12:44:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/04/15/supporting-both-local-and-windows-authentication-in-asp-net-core-mvc-using-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/id4winauth_03.png</image:loc><image:title>id4WinAuth_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/id4winauth_02.png</image:loc><image:title>id4WinAuth_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/id4winauth_01.png</image:loc><image:title>id4WinAuth_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/auth_windows_local_04.png</image:loc><image:title>auth_windows_local_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/auth_windows_local_03.png</image:loc><image:title>auth_windows_local_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/auth_windows_local_02.png</image:loc><image:title>auth_windows_local_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/auth_windows_local_01.png</image:loc><image:title>auth_windows_local_01</image:title></image:image><lastmod>2021-01-27T21:06:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/04/25/oauth-authentication-with-pkce-for-a-net-core-console-native-application/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/nativecode_oidc_01.png</image:loc><image:title>nativeCode_oidc_01</image:title></image:image><lastmod>2020-10-09T12:06:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/04/19/asp-net-core-authorization-for-windows-local-accounts/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/auth_windows_authoriaztion_02.png</image:loc><image:title>auth_windows_authoriaztion_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/04/auth_windows_authoriaztion_01.png</image:loc><image:title>auth_windows_authoriaztion_01</image:title></image:image><lastmod>2024-11-14T07:25:24+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/05/09/anti-forgery-validation-with-asp-net-core-mvc-and-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/05/anti-forgery-aspnetcore-mvc-angular_01.png</image:loc><image:title>Anti-Forgery-aspnetcore-mvc-angular_01</image:title></image:image><lastmod>2020-06-27T09:15:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/05/06/secure-asp-net-core-mvc-with-angular-using-identityserver4-openid-connect-hybrid-flow/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/05/securemvchybridflow_021.png</image:loc><image:title>secureMvcHybridFlow_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/05/securemvchybridflow_011.png</image:loc><image:title>secureMvcHybridFlow_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/05/securemvchybridflow_02.png</image:loc><image:title>secureMvcHybridFlow_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/05/securemvchybridflow_01.png</image:loc><image:title>secureMvcHybridFlow_01</image:title></image:image><lastmod>2020-06-27T09:14:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/05/02/using-angular-in-an-asp-net-core-view-with-webpack/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/05/angularmvcserverrendering_02.png</image:loc><image:title>angularMVCserverRendering_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/05/angularmvcserverrendering_01.png</image:loc><image:title>angularMVCserverRendering_01</image:title></image:image><lastmod>2020-06-27T09:11:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/06/13/restricting-access-to-an-azure-ad-protected-api-using-azure-ad-groups/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_11.png</image:loc><image:title>aad_restricted_access_11</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_10.png</image:loc><image:title>aad_restricted_access_10</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_09.png</image:loc><image:title>aad_restricted_access_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_08.png</image:loc><image:title>aad_restricted_access_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_07.png</image:loc><image:title>aad_restricted_access_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_06.png</image:loc><image:title>aad_restricted_access_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_05.png</image:loc><image:title>aad_restricted_access_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_04.png</image:loc><image:title>aad_restricted_access_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_03.png</image:loc><image:title>aad_restricted_access_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/06/aad_restricted_access_02.png</image:loc><image:title>aad_restricted_access_02</image:title></image:image><lastmod>2020-06-22T05:35:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/06/22/using-azure-cli-to-create-azure-app-registrations/</loc><lastmod>2022-02-23T23:10:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/05/13/getting-started-with-angular-development-2020/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/05/angular_getting_started_01.png</image:loc><image:title>Angular_getting_started_01</image:title></image:image><lastmod>2022-08-23T13:10:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/05/05/configure-domain-for-azure-app-service-using-cloudflare/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/cloudflaredomain_06.png</image:loc><image:title>cloudflareDomain_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/cloudflaredomain_05.png</image:loc><image:title>cloudflareDomain_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/cloudflaredomain_04.png</image:loc><image:title>cloudflareDomain_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/cloudflaredomain_03.png</image:loc><image:title>cloudflareDomain_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/cloudflaredomain_02.png</image:loc><image:title>cloudflareDomain_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/cloudflaredomain_01.png</image:loc><image:title>cloudflareDomain_01</image:title></image:image><lastmod>2020-05-28T17:43:06+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/06/16/angular-oidc-oauth2-client-with-google-identity-platform/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/openid_google_03.png</image:loc><image:title>openid_google_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/openid_google_04.png</image:loc><image:title>openid_google_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/openid_google_02.png</image:loc><image:title>openid_google_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/openid_google_01.png</image:loc><image:title>openid_google_01</image:title></image:image><lastmod>2020-05-03T06:12:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/01/09/securing-angular-applications-using-the-openid-connect-code-flow-with-pkce/</loc><lastmod>2023-07-14T14:06:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/04/20/add-git-tags-and-versioning-to-mark-deployments-in-azure-devops-pipelines/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/azuredevoops_versioning_tagging_01.png</image:loc><image:title>azureDevoOps_versioning_tagging_01</image:title></image:image><lastmod>2020-04-20T06:33:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/04/15/create-build-deploy-and-configure-an-azure-app-service-with-azure-devops-and-azure-cli/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/azureappservicedevops_01.png</image:loc><image:title>azureAppServiceDevOps_01</image:title></image:image><lastmod>2021-03-18T18:24:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/04/09/using-certificates-from-azure-key-vault-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/keyvaultcertificates_03.png</image:loc><image:title>keyVaultCertificates_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/keyvaultcertificates_02.png</image:loc><image:title>keyVaultCertificates_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/keyvaultcertificates_01.png</image:loc><image:title>keyVaultCertificates_01</image:title></image:image><lastmod>2021-11-05T08:45:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/04/06/create-build-deploy-and-configure-an-azure-function-with-azure-devops-and-azure-cli/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/04/azurefunctiondevops_01.png</image:loc><image:title>azureFunctionDevOps_01</image:title></image:image><lastmod>2020-04-08T16:42:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/04/02/use-azure-key-vault-for-secrets-in-azure-devops-pipelines/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_kv_azure_cli_04.png</image:loc><image:title>azure_devops_kv_azure_cli_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_kv_azure_cli_03.png</image:loc><image:title>azure_devops_kv_azure_cli_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_kv_azure_cli_02.png</image:loc><image:title>azure_devops_kv_azure_cli_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_kv_azure_cli_01.png</image:loc><image:title>azure_devops_kv_azure_cli_01</image:title></image:image><lastmod>2020-04-08T16:40:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/03/31/create-azure-infrastructure-with-azure-devops-and-azure-cli-powershell-scripts/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_ps_azure_cli_02.png</image:loc><image:title>azure_devops_ps_azure_cli_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_ps_azure_cli_01.png</image:loc><image:title>azure_devops_ps_azure_cli_01</image:title></image:image><lastmod>2020-04-06T06:00:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/03/28/publish-nuget-packages-in-azure-devops-pipelines/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_nuget_06.png</image:loc><image:title>azure_devops_nuget_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_nuget_05.png</image:loc><image:title>azure_devops_nuget_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_nuget_04.png</image:loc><image:title>azure_devops_nuget_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_nuget_03.png</image:loc><image:title>azure_devops_nuget_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_nuget_02.png</image:loc><image:title>azure_devops_nuget_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/03/azure_devops_nuget_01.png</image:loc><image:title>azure_devops_nuget_01</image:title></image:image><lastmod>2020-03-30T18:52:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/06/27/using-chained-certificates-for-certificate-authentication-in-asp-net-core-3-0/</loc><lastmod>2020-02-19T17:22:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/02/10/create-certificates-for-identityserver4-signing-using-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/01/id4_signingcert_02.png</image:loc><image:title>id4_signingCert_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/01/id4_signingcert_01.png</image:loc><image:title>id4_signingCert_01</image:title></image:image><lastmod>2023-07-12T23:13:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/06/13/certificate-authentication-in-asp-net-core-3-0/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/06/certauth_01.png</image:loc><image:title>certAuth_01</image:title></image:image><lastmod>2020-07-29T18:07:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/02/04/creating-certificates-in-net-core-for-vue-js-development-using-https/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/01/vue_certs_03.png</image:loc><image:title>vue_certs_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/01/vue_certs_02.png</image:loc><image:title>vue_certs_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/01/vue_certs_01.png</image:loc><image:title>vue_certs_01</image:title></image:image><lastmod>2020-02-11T06:46:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2020/01/29/creating-certificates-for-x-509-security-in-azure-iot-hub-using-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/01/certsiothubazure_02.png</image:loc><image:title>CertsIoTHubAzure_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2020/01/certsiothubazure_01.png</image:loc><image:title>CertsIoTHubAzure_01</image:title></image:image><lastmod>2020-05-07T06:51:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/03/03/net-core-logging-to-mysql-using-nlog/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/nlogmysql_02.png</image:loc><image:title>nlogmysql_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/nlogmysql.png</image:loc><image:title>nlogmysql</image:title></image:image><lastmod>2020-01-12T21:03:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/03/29/net-core-asp-net-core-logging-with-nlog-and-postgresql/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/nlogpostgresql_02.png</image:loc><image:title>nlogPostgresql_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/nlogpostgresql_01.png</image:loc><image:title>nlogPostgresql_01</image:title></image:image><lastmod>2020-01-12T21:01:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/09/22/setting-the-nlog-database-connection-string-in-the-asp-net-core-appsettings-json/</loc><lastmod>2020-01-12T20:57:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/08/20/asp-net-core-logging-with-nlog-and-elasticsearch/</loc><lastmod>2020-01-12T20:54:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/08/17/asp-net-core-logging-with-nlog-and-microsoft-sql-server/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/08/sqlaspnetdatabselogger_01.png</image:loc><image:title>sqlaspnetdatabselogger_01</image:title></image:image><lastmod>2020-01-12T20:52:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/08/26/asp-net-core-1-0-with-mysql-and-entity-framework-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/08/mysql_ercore_aspnetcore_03.png</image:loc><image:title>mySql_ercore_aspnetcore_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/08/mysql_ercore_aspnetcore_02.png</image:loc><image:title>mySql_ercore_aspnetcore_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/08/mysql_ercore_aspnetcore_01.png</image:loc><image:title>mySql_ercore_aspnetcore_01</image:title></image:image><lastmod>2020-05-15T23:46:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/01/11/asp-net-5-with-postgresql-and-entity-framework-7/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/ef7_postgresql_031.png</image:loc><image:title>EF7_PostgreSQL_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/ef7_postgresql_03.png</image:loc><image:title>EF7_PostgreSQL_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/ef7_postgresql_02.png</image:loc><image:title>EF7_PostgreSQL_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/ef7_postgresql_01.png</image:loc><image:title>EF7_PostgreSQL_01</image:title></image:image><lastmod>2021-03-08T19:53:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/12/05/asp-net-5-mvc-6-file-upload-with-ms-sql-server-filetable/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/12/aspnet5upload_02.png</image:loc><image:title>aspnet5upload_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/12/aspnet5upload_01.png</image:loc><image:title>aspnet5upload_01</image:title></image:image><lastmod>2022-05-17T20:58:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/05/17/updating-microsoft-account-logins-in-asp-net-core-with-openid-connect-and-azure-active-directory/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/05/aad_ms_login_04.png</image:loc><image:title>aad_ms_login_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/05/aad_ms_login_03.png</image:loc><image:title>aad_ms_login_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/05/aad_ms_login_02.png</image:loc><image:title>aad_ms_login_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/05/aad_ms_login_01.png</image:loc><image:title>aad_ms_login_01</image:title></image:image><lastmod>2020-05-24T19:20:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/12/02/using-http-request-routes-request-body-and-query-string-parameters-for-authorization-in-asp-net-core/</loc><lastmod>2019-12-02T08:00:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/11/09/wpf-azure-ad-signin-with-sharepoint-online-api-call-using-graph-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/11/azureadsharepoingonline_06.png</image:loc><image:title>azureAdSharepoingOnline_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/11/azureadsharepoingonline_04.png</image:loc><image:title>azureAdSharepoingOnline_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/11/azureadsharepoingonline_03.png</image:loc><image:title>azureAdSharepoingOnline_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/11/azureadsharepoingonline_02.png</image:loc><image:title>azureAdSharepoingOnline_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/11/azureadsharepoingonline_01.png</image:loc><image:title>azureAdSharepoingOnline_01</image:title></image:image><lastmod>2019-11-09T20:53:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/10/25/securing-a-web-api-using-multiple-token-servers/</loc><lastmod>2019-10-25T16:35:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/06/30/using-protobuf-media-formatters-with-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/aspnetcore_protobuf_01.png</image:loc><image:title>aspnetcore_protobuf_01</image:title></image:image><lastmod>2019-10-04T16:21:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/01/23/using-the-dotnet-angular-template-with-azure-ad-oidc-implict-flow/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_11.png</image:loc><image:title>MicrosoftAzureAd_11</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_10.png</image:loc><image:title>MicrosoftAzureAd_10</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_09.png</image:loc><image:title>MicrosoftAzureAd_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_08.png</image:loc><image:title>MicrosoftAzureAd_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_07.png</image:loc><image:title>MicrosoftAzureAd_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_06.png</image:loc><image:title>MicrosoftAzureAd_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_05.png</image:loc><image:title>MicrosoftAzureAd_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_04.png</image:loc><image:title>MicrosoftAzureAd_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_03.png</image:loc><image:title>MicrosoftAzureAd_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/microsoftazuread_02.png</image:loc><image:title>MicrosoftAzureAd_02</image:title></image:image><lastmod>2019-09-23T19:38:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/06/11/openid-connect-session-management-an-angular-application-using-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/angular_checksession_04.png</image:loc><image:title>angular_checksession_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/angular_checksession_03.png</image:loc><image:title>angular_checksession_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/angular_checksession_02.png</image:loc><image:title>angular_checksession_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/angular_checksession_01.png</image:loc><image:title>angular_checksession_01</image:title></image:image><lastmod>2019-09-20T15:32:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/06/02/implementing-a-silent-token-renew-in-angular-for-the-openid-connect-implicit-flow/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/silentrenewidtoken_01.png</image:loc><image:title>silentRenewIdtoken_01</image:title></image:image><lastmod>2019-09-20T15:31:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/11/18/extending-identity-in-identityserver4-to-manage-users-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/11/extendingidentity_01.png</image:loc><image:title>extendingidentity_01</image:title></image:image><lastmod>2023-01-01T05:15:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/10/01/identityserver4-webapi-and-angular2-in-a-single-asp-net-core-project/</loc><lastmod>2019-11-11T13:44:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/09/16/full-server-logout-with-identityserver4-and-openid-connect-implicit-flow/</loc><lastmod>2019-09-20T14:43:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/03/02/angular2-openid-connect-implicit-flow-with-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/03/angular2_identityserver4_04.png</image:loc><image:title>angular2_IdentityServer4_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/03/angular2_identityserver4_03.png</image:loc><image:title>angular2_IdentityServer4_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/03/angular2_identityserver4_02.png</image:loc><image:title>angular2_IdentityServer4_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/03/angular2_identityserver4_01.png</image:loc><image:title>angular2_IdentityServer4_01</image:title></image:image><lastmod>2019-09-20T14:40:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/04/02/angular2-secure-file-download-without-using-an-access-token-in-url-or-cookies/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/04/securenoaccessinurl_01.png</image:loc><image:title>secureNoAccessInUrl_01</image:title></image:image><lastmod>2022-01-26T19:13:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/02/14/authorization-policies-and-data-protection-with-identityserver4-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/dataprotectionaspnet5identityserverangularimplicitflow_02.png</image:loc><image:title>dataprotectionAspNet5IdentityServerAngularImplicitFlow_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/dataprotectionaspnet5identityserverangularimplicitflow_01png.png</image:loc><image:title>dataprotectionAspNet5IdentityServerAngularImplicitFlow_01png</image:title></image:image><lastmod>2020-06-16T15:08:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/06/05/dynamic-css-in-an-asp-net-core-mvc-view-component/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/aspnetcoremvcdynamicviews_02.gif</image:loc><image:title>AspNetCoreMvcDynamicViews_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/aspnetcoremvcdynamicviews_01.png</image:loc><image:title>AspNetCoreMvcDynamicViews_01</image:title></image:image><lastmod>2019-09-14T18:46:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/06/17/import-export-csv-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/06/importexportcsv.png</image:loc><image:title>importExportCsv</image:title></image:image><lastmod>2021-03-25T15:44:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/04/14/asp-net-core-identityserver4-resource-owner-password-flow-with-custom-userrepository/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/04/consoleresourceownerflowrefreshtoken_01.png</image:loc><image:title>ConsoleResourceOwnerFlowRefreshToken_01</image:title></image:image><lastmod>2023-12-11T20:36:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/09/07/using-certificate-authentication-with-ihttpclientfactory-and-httpclient/</loc><lastmod>2022-08-10T09:27:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/07/30/an-alternative-way-to-build-and-bundle-javascript-css-in-asp-net-core-mvc-and-razor-page-projects/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/07/bundle_aspnetcore_01.png</image:loc><image:title>bundle_aspnetcore_01</image:title></image:image><lastmod>2019-07-30T05:39:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/07/07/system-testing-asp-net-core-apis-using-xunit/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/07/system_test_01.png</image:loc><image:title>system_test_01</image:title></image:image><lastmod>2019-07-29T20:49:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/07/13/injecting-configurations-in-razor-views-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/07/aspnetcoreinjectconfigurationrazor_01.png</image:loc><image:title>AspNetCoreInjectConfigurationRazor_01</image:title></image:image><lastmod>2019-11-05T16:17:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/09/30/asp-net-5-exception-filters-and-resource-filters/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5exceptionfilters_03.png</image:loc><image:title>aspnet5ExceptionFilters_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5exceptionfilters_02.png</image:loc><image:title>aspnet5ExceptionFilters_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5exceptionfilters_01.png</image:loc><image:title>aspnet5ExceptionFilters_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5_filters_011.png</image:loc><image:title>aspnet5_filters_01[1]</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5_filters_04.png</image:loc><image:title>aspnet5_Filters_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5_filters_031.png</image:loc><image:title>aspnet5_Filters_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5_filters_021.png</image:loc><image:title>aspnet5_Filters_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5_filters_03.png</image:loc><image:title>aspnet5_Filters_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5_filters_02.png</image:loc><image:title>aspnet5_Filters_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5_filters_01.png</image:loc><image:title>aspnet5_Filters_01</image:title></image:image><lastmod>2019-07-27T13:15:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/09/15/asp-net-5-action-filters/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_004_test.png</image:loc><image:title>aspnet5actionfilters_004_test</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_003_order.png</image:loc><image:title>aspnet5actionfilters_003_order</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_002_base.png</image:loc><image:title>aspnet5actionfilters_002_base</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_001_global.png</image:loc><image:title>aspnet5actionfilters_001_global</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_04.png</image:loc><image:title>aspnet5actionfilters_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_03.png</image:loc><image:title>aspnet5actionfilters_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_012.png</image:loc><image:title>aspnet5actionfilters_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_02.png</image:loc><image:title>aspnet5actionfilters_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_011.png</image:loc><image:title>aspnet5actionfilters_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/aspnet5actionfilters_01.png</image:loc><image:title>aspnet5actionfilters_01</image:title></image:image><lastmod>2019-07-27T13:08:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/07/11/adding-an-external-microsoft-login-to-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_11.png</image:loc><image:title>id4_external_microsoft_11</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_10.png</image:loc><image:title>id4_external_microsoft_10</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_09.png</image:loc><image:title>id4_external_microsoft_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_08.png</image:loc><image:title>id4_external_microsoft_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_07.png</image:loc><image:title>id4_external_microsoft_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_06.png</image:loc><image:title>id4_external_microsoft_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_05.png</image:loc><image:title>id4_external_microsoft_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_04.png</image:loc><image:title>id4_external_microsoft_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_03.png</image:loc><image:title>id4_external_microsoft_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/id4_external_microsoft_02.png</image:loc><image:title>id4_external_microsoft_02</image:title></image:image><lastmod>2020-12-04T07:24:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/04/02/securing-browser-based-javascript-typescript-applications/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/javascript_security_decisions_01-4.png</image:loc><image:title>javascript_security_decisions_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/javascript_security_decisions_01-3.png</image:loc><image:title>javascript_security_decisions_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/javascript_security_decisions_01-2.png</image:loc><image:title>javascript_security_decisions_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/javascript_security_decisions_01-1.png</image:loc><image:title>javascript_security_decisions_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/04/javascript_security_decisions_01.png</image:loc><image:title>javascript_security_decisions_01</image:title></image:image><lastmod>2019-04-27T18:44:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/06/14/angular-auth-oidc-client-release-an-openid-implicit-flow-client-in-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/06/oid-l-certification-mark-l-rgb-150dpi-90mm.png</image:loc><image:title>oid-l-certification-mark-l-rgb-150dpi-90mm</image:title></image:image><lastmod>2019-04-27T18:42:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/11/06/identityserver4-localization-with-the-oidc-implicit-flow/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/11/localizationidentityserver4_031.png</image:loc><image:title>localizationIdentityServer4_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/11/localizationidentityserver4_021.png</image:loc><image:title>localizationIdentityServer4_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/11/localizationidentityserver4_03.png</image:loc><image:title>localizationIdentityServer4_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/11/localizationidentityserver4_01.png</image:loc><image:title>localizationIdentityServer4_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/11/localizationidentityserver4_02.png</image:loc><image:title>localizationIdentityServer4_02</image:title></image:image><lastmod>2019-04-27T18:37:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/11/11/identityserver4-localization-using-ui_locales-and-the-query-string/</loc><lastmod>2019-04-27T18:35:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/12/30/using-an-ef-core-database-for-the-identityserver4-configuration-data/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/12/identityserver4cofigdata_01.png</image:loc><image:title>identityserver4CofigData_01</image:title></image:image><lastmod>2019-04-27T18:34:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/06/26/updating-asp-net-core-identity-to-use-bootstrap-4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/identity_bootstrap4_03.png</image:loc><image:title>identity_bootstrap4_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/identity_bootstrap4_02.png</image:loc><image:title>identity_bootstrap4_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/identity_bootstrap4_01.png</image:loc><image:title>identity_bootstrap4_01</image:title></image:image><lastmod>2019-04-27T18:32:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/06/15/asp-net-core-mvc-form-requests-and-the-browser-back-button/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/aspnetcorebackbuttonproblem.gif</image:loc><image:title>aspnetcoreBackButtonProblem</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/aspnetcore_backbutton_01.png</image:loc><image:title>aspnetcore_backbutton_01</image:title></image:image><lastmod>2019-04-27T18:30:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/07/03/adding-localization-to-the-asp-net-core-identity-pages/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/07/identiy_localize_01.gif</image:loc><image:title>identiy_localize_01</image:title></image:image><lastmod>2020-04-16T20:39:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/08/07/disabling-parts-of-asp-net-core-identity/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/08/identity_disable_01.png</image:loc><image:title>identity_disable_01</image:title></image:image><lastmod>2019-04-27T18:28:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/09/21/deploying-an-asp-net-core-application-to-windows-iis/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/09/iis_createwebsite_01.png</image:loc><image:title>IIS_createWebsite_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/09/iis_createwebsite.png</image:loc><image:title>IIS_createWebsite</image:title></image:image><lastmod>2019-04-27T18:27:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/10/03/creating-a-pdf-in-asp-net-core-using-migradoc-pdfsharp/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/10/aspnetcore_pdf_migradoc_02.png</image:loc><image:title>aspnetcore_pdf_migraDoc_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/10/aspnetcore_pdf_migradoc_01.png</image:loc><image:title>aspnetcore_pdf_migraDoc_01</image:title></image:image><lastmod>2019-04-27T18:26:06+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/01/24/passing-javascript-values-to-asp-net-core-view-components/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/view_component_01.png</image:loc><image:title>view_component_01</image:title></image:image><lastmod>2020-05-28T15:11:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/02/07/using-azure-key-vault-from-an-non-azure-app/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_11.png</image:loc><image:title>key_Vault_ad_app_11</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_10.png</image:loc><image:title>key_Vault_ad_app_10</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_09.png</image:loc><image:title>key_Vault_ad_app_09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_08.png</image:loc><image:title>key_Vault_ad_app_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_07.png</image:loc><image:title>key_Vault_ad_app_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_06.png</image:loc><image:title>key_Vault_ad_app_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_05.png</image:loc><image:title>key_Vault_ad_app_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_04.png</image:loc><image:title>key_Vault_ad_app_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_03.png</image:loc><image:title>key_Vault_ad_app_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/key_vault_ad_app_02.png</image:loc><image:title>key_Vault_ad_app_02</image:title></image:image><lastmod>2019-12-06T16:15:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/02/13/auto-generated-net-api-clients-using-nswag-and-swashbuckle-swagger/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/02/open_api_nswag_01.png</image:loc><image:title>open_api_nswag_01</image:title></image:image><lastmod>2019-06-04T04:39:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/03/14/running-local-azure-functions-in-visual-studio-with-https/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/azure_function_04.png</image:loc><image:title>azure_function_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/azure_function_03.png</image:loc><image:title>azure_function_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/azure_function_02.png</image:loc><image:title>azure_function_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/03/azure_function_01.png</image:loc><image:title>azure_function_01</image:title></image:image><lastmod>2019-03-14T04:44:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/12/23/using-azure-key-vault-with-asp-net-core-and-azure-app-services/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/key_vault_damienbod_06.png</image:loc><image:title>key_vault_damienbod_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/key_vault_damienbod_03.png</image:loc><image:title>key_vault_damienbod_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/key_vault_damienbod_04.png</image:loc><image:title>key_vault_damienbod_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/key_vault_damienbod_05.png</image:loc><image:title>key_vault_damienbod_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/key_vault_damienbod_02.png</image:loc><image:title>key_vault_damienbod_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/key_vault_damienbod.png</image:loc><image:title>key_vault_damienbod</image:title></image:image><lastmod>2019-02-07T20:53:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/01/07/deploying-asp-net-core-app-services-using-azure-key-vault-and-azure-resource-manager-templates/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/as_deploy_arm_template_04.png</image:loc><image:title>as_deploy_arm_template_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/as_deploy_arm_template_03.png</image:loc><image:title>as_deploy_arm_template_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/as_deploy_arm_template_02.png</image:loc><image:title>as_deploy_arm_template_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/as_deploy_arm_template_01.png</image:loc><image:title>as_deploy_arm_template_01</image:title></image:image><lastmod>2019-02-07T20:53:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/03/09/testing-an-asp-net-core-mvc-protobuf-api-using-httpclient-and-xunit/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/xunittesting_03.png</image:loc><image:title>xunitTesting_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/xunittesting_02.png</image:loc><image:title>xunitTesting_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/xunittesting_01.png</image:loc><image:title>xunitTesting_01</image:title></image:image><lastmod>2019-01-30T14:16:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/06/03/asp-net-5-mvc-6-custom-protobuf-formatters/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/protobufpost_01.png</image:loc><image:title>protobufPost_01</image:title></image:image><lastmod>2019-01-30T14:14:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2019/01/20/is-a-spa-less-secure-than-a-server-rendered-web-application/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/security_arch_04.png</image:loc><image:title>security_arch_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/security_arch_03.png</image:loc><image:title>security_arch_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/security_arch_02.png</image:loc><image:title>security_arch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2019/01/security_arch_01.png</image:loc><image:title>security_arch_01</image:title></image:image><lastmod>2019-01-20T20:19:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/10/24/using-dataannotations-and-localization-in-asp-net-5-mvc-6/</loc><lastmod>2018-12-05T06:47:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/10/21/asp-net-5-mvc-6-localization/</loc><lastmod>2018-12-05T06:47:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/12/01/using-mvc-asp-net-core-apps-in-a-host-asp-net-core-app/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/aspnetcore_mvc_hosting_04.png</image:loc><image:title>aspnetcore_mvc_hosting_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/aspnetcore_mvc_hosting_03.png</image:loc><image:title>aspnetcore_mvc_hosting_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/aspnetcore_mvc_hosting_02.png</image:loc><image:title>aspnetcore_mvc_hosting_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/12/aspnetcore_mvc_hosting_01.png</image:loc><image:title>aspnetcore_mvc_hosting_01</image:title></image:image><lastmod>2018-12-04T06:50:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/11/01/shared-localization-in-asp-net-core-mvc/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/11/aspnetcoremvcsharedlocalization_create_03.png</image:loc><image:title>AspNetCoreMvcSharedLocalization_create_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/11/aspnetcoremvcsharedlocalization_create_02.png</image:loc><image:title>AspNetCoreMvcSharedLocalization_create_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/11/aspnetcoremvcsharedlocalization_create_01.png</image:loc><image:title>AspNetCoreMvcSharedLocalization_create_01</image:title></image:image><lastmod>2021-01-06T21:55:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/09/30/creating-pdf-files-in-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/09/aspnetcore_pdf_03.png</image:loc><image:title>aspnetcore_pdf_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/09/aspnetcore_pdf_02.png</image:loc><image:title>aspnetcore_pdf_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/09/aspnetcore_pdf_01.png</image:loc><image:title>aspnetcore_pdf_01</image:title></image:image><lastmod>2023-11-30T09:17:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/12/18/implementing-a-client-white-list-using-asp-net-core-middleware/</loc><lastmod>2018-10-24T13:25:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/08/15/implementing-a-multi-tenant-oidc-azure-ad-external-login-for-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/08/azuread_id4_05.png</image:loc><image:title>azuread_id4_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/08/id4_azure_ad_041.png</image:loc><image:title>id4_azure_ad_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/08/id4_azure_ad_03.png</image:loc><image:title>id4_azure_ad_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/08/id4_azure_ad_04.png</image:loc><image:title>id4_azure_ad_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/08/id4_azure_ad_01.png</image:loc><image:title>id4_azure_ad_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/08/id4_azure_ad_02.png</image:loc><image:title>id4_azure_ad_02</image:title></image:image><lastmod>2023-06-09T16:47:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/08/13/is-active-route-tag-helper-for-asp-net-mvc-core-with-razor-page-support/</loc><lastmod>2019-04-04T13:30:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/06/07/adding-sql-localization-data-using-an-angular-2-form-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/06/localizedangular2form_02.png</image:loc><image:title>localizedAngular2Form_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/06/localizedangular2form_01.png</image:loc><image:title>localizedAngular2Form_01</image:title></image:image><lastmod>2018-08-01T18:51:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/05/26/creating-and-requesting-sql-localized-data-in-asp-net-core/</loc><lastmod>2018-08-01T18:50:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/04/29/angular-2-localization-with-an-asp-net-core-mvc-service/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/04/angula2localization_02.png</image:loc><image:title>angula2Localization_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/04/angula2localization_01.png</image:loc><image:title>angula2Localization_01</image:title></image:image><lastmod>2018-08-01T18:48:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/07/08/updating-part-of-an-asp-net-core-mvc-view-which-uses-forms/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/07/aspnetcore_ajax.gif</image:loc><image:title>aspnetcore_ajax</image:title></image:image><lastmod>2022-11-19T18:04:26+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/06/23/an-asp-net-core-razor-pages-bootstrap-4-application-using-webpack-typescript-and-npm/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/pages_webpack_02.png</image:loc><image:title>pages_webpack_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/06/pages_webpack_01.png</image:loc><image:title>pages_webpack_01</image:title></image:image><lastmod>2018-07-19T09:51:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/10/11/asp-net-5-multiple-configurations-without-using-environment-variables/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/10/aspnet5_config_api_about_03.png</image:loc><image:title>aspnet5_config_api_about_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/10/aspnet5_config_api_about_02.png</image:loc><image:title>aspnet5_config_api_about_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/10/aspnet5_config_api_about_01.png</image:loc><image:title>aspnet5_config_api_about_01</image:title></image:image><lastmod>2018-06-20T19:53:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/12/01/mvc-loading-a-dynamic-list-in-a-view/</loc><lastmod>2018-06-14T19:23:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/03/27/comparing-the-https-security-headers-of-swiss-banks/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_web_safrasarasin.png</image:loc><image:title>bank_web_safrasarasin</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_login_safrasarasin.png</image:loc><image:title>bank_login_safrasarasin</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_web_tkb.png</image:loc><image:title>bank_web_tkb</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_login_tkb.png</image:loc><image:title>bank_login_tkb</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_login_sgkb1.png</image:loc><image:title>bank_login_sgkb</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_web_sgkb.png</image:loc><image:title>bank_web_sgkb</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_login_sgkb.png</image:loc><image:title>bank_login_sgkb</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_login_dc_valiant.png</image:loc><image:title>bank_login_dc_valiant</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_web_dc_valiant.png</image:loc><image:title>bank_web_dc_valiant</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/bank_login_bekb.png</image:loc><image:title>bank_login_bekb</image:title></image:image><lastmod>2018-05-07T05:47:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/03/14/securing-the-cdn-links-in-the-asp-net-core-2-1-templates/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/aspnetcore_2_1_template_03.png</image:loc><image:title>aspnetcore_2_1_template_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/aspnetcore_2_1_template_02.png</image:loc><image:title>aspnetcore_2_1_template_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/aspnetcore_2_1_template_01.png</image:loc><image:title>aspnetcore_2_1_template_01</image:title></image:image><lastmod>2018-05-07T05:44:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/03/16/first-experiments-with-makecode-and-microbit/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/maakecode_microbit_03.png</image:loc><image:title>maakecode_microbit_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/maakecode_microbit_02.png</image:loc><image:title>maakecode_microbit_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/03/maakecode_microbit_01.png</image:loc><image:title>maakecode_microbit_01</image:title></image:image><lastmod>2018-03-20T16:28:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2018/01/05/creating-specific-themes-for-oidc-clients-using-razor-views-with-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/oidc_themes_id4_02.png</image:loc><image:title>oidc_themes_id4_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/oidc_themes_id4_03.png</image:loc><image:title>oidc_themes_id4_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/oidc_themes_id4_04.png</image:loc><image:title>oidc_themes_id4_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2018/01/oidc_themes_id4_01.png</image:loc><image:title>oidc_themes_id4_01</image:title></image:image><lastmod>2018-01-05T20:24:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/06/12/asp-net-core-angular2-with-webpack-and-visual-studio/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/06/vs_webpack_angular2_03.png</image:loc><image:title>vs_webpack_angular2_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/06/vs_webpack_angular2_02.png</image:loc><image:title>vs_webpack_angular2_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/06/vs_webpack_angular2.png</image:loc><image:title>vs_webpack_angular2</image:title></image:image><lastmod>2019-02-19T10:25:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/01/01/building-production-ready-angular-apps-with-visual-studio-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/vs_angular_build_021.png</image:loc><image:title>vs_angular_build_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/vs_angular_build_02.png</image:loc><image:title>vs_angular_build_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/vs_angular_build_01.png</image:loc><image:title>vs_angular_build_01</image:title></image:image><lastmod>2017-11-05T08:47:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/08/13/angular-configuration-using-asp-net-core-settings/</loc><lastmod>2018-03-06T08:14:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/09/26/auto-redirect-to-an-sts-server-in-an-angular-app-using-oidc-implicit-flow/</loc><lastmod>2020-10-05T06:57:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/07/14/implementing-two-factor-authentication-with-identityserver4-and-twilio/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/identityserver4_2fa_04.png</image:loc><image:title>identityserver4_2fa_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/identityserver4_2fa_02.png</image:loc><image:title>identityserver4_2fa_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/identityserver4_2fa_03.png</image:loc><image:title>identityserver4_2fa_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/07/identityserver4_2fa_01.png</image:loc><image:title>identityserver4_2fa_01</image:title></image:image><lastmod>2020-01-18T08:34:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/11/08/oauth2-implicit-flow-with-angular-and-asp-net-5-identity-server/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/loginidentityserverwithaspnetidentity_02.png</image:loc><image:title>loginidentityserverwithaspnetidentity_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/loginidentityserverwithaspnetidentity_01.png</image:loc><image:title>loginidentityserverwithaspnetidentity_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/angular_aspnet5_identityserver4_02.png</image:loc><image:title>angular_aspnet5_IdentityServer4_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/angular_aspnet5_identityserver4_01.png</image:loc><image:title>angular_aspnet5_IdentityServer4_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/angularclientidentityserver3_03.png</image:loc><image:title>AngularClientIdentityServer3_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/angularclientidentityserver3_02.png</image:loc><image:title>AngularClientIdentityServer3_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/angularclientidentityserver3_01.png</image:loc><image:title>AngularClientIdentityServer3_01</image:title></image:image><lastmod>2018-01-13T18:23:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/07/15/import-export-asp-net-core-localized-data-as-csv/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/07/localizeddatacsvimportexport_01.png</image:loc><image:title>localizedDataCsvImportExport_01</image:title></image:image><lastmod>2018-01-28T16:40:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/01/29/asp-net-core-1-0-using-sql-localization/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/aspnetcore_loc_sql_01.png</image:loc><image:title>aspnetcore_loc_sql_01</image:title></image:image><lastmod>2024-09-21T14:33:26+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/08/30/asp-net-5-with-sqlite-and-entity-framework-7/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/08/aspnet5sqlite_updatebeta8_01.png</image:loc><image:title>aspnet5sqlite_updatebeta8_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/08/sqlite_asp_net5_04.png</image:loc><image:title>SQLite_ASP_NET5_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/08/sqlite_asp_net5_03.png</image:loc><image:title>SQLite_ASP_NET5_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/08/sqlite_asp_net5_02.png</image:loc><image:title>SQLite_ASP_NET5_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/08/sqlite_asp_net5_01.png</image:loc><image:title>SQLite_ASP_NET5_01</image:title></image:image><lastmod>2017-08-17T06:28:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/02/01/hot-module-replacement-with-angular-2-and-webpack/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/02/hmr_angular2_03.gif</image:loc><image:title>hmr_angular2_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/02/hmr_angular_01.png</image:loc><image:title>hmr_angular_01</image:title></image:image><lastmod>2017-11-29T01:56:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/01/14/angular-2-lazy-loading-with-webpack-2/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/lazyloadingwebpack_03.png</image:loc><image:title>lazyloadingwebpack_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/lazyloadingwebpack_02.png</image:loc><image:title>lazyloadingwebpack_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/lazyloadingwebpack_01.png</image:loc><image:title>lazyloadingwebpack_01</image:title></image:image><lastmod>2017-07-15T05:48:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/02/26/angular-openid-connect-implicit-flow-with-identityserver4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/openid_implicitflow_04.png</image:loc><image:title>openid_implicitFlow_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/openid_implicitflow_03.png</image:loc><image:title>openid_implicitFlow_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/openid_implicitflow_02.png</image:loc><image:title>openid_implicitFlow_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/openid_implicitflow_01.png</image:loc><image:title>openid_implicitFlow_01</image:title></image:image><lastmod>2017-11-14T10:33:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/03/14/secure-file-download-using-identityserver4-angular2-and-asp-net-core/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/03/securefile_download_02.png</image:loc><image:title>secureFile_download_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/03/securefile_download_01.png</image:loc><image:title>secureFile_download_01</image:title></image:image><lastmod>2019-04-01T19:44:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/05/26/released-sql-localization-nuget-package-for-asp-net-core-dotnet/</loc><lastmod>2017-05-14T19:33:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/03/16/asp-net-core-error-management-with-elmah-io/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/asp-net-core-elmah-io_04.png</image:loc><image:title>asp-net-core-elmah-io_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/asp-net-core-elmah-io_03.png</image:loc><image:title>asp-net-core-elmah-io_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/asp-net-core-elmah-io_02.png</image:loc><image:title>asp-net-core-elmah-io_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/03/asp-net-core-elmah-io_01.png</image:loc><image:title>asp-net-core-elmah-io_01</image:title></image:image><lastmod>2017-11-30T01:02:35+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/12/swaggerprojectconfig.png</image:loc><image:title>SwaggerProjectConfig</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/12/aspnet5mvc6swagger_02.png</image:loc><image:title>aspnet5Mvc6Swagger_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/12/aspnet5mvc6swagger_01.png</image:loc><image:title>aspnet5Mvc6Swagger_01</image:title></image:image><lastmod>2017-12-12T17:13:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/10/17/angular2-autocomplete-with-asp-net-core-and-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/10/angular2autocompleteaspnetcoreelasticsearch_03.png</image:loc><image:title>angular2autocompleteaspnetcoreelasticsearch_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/10/angular2autocompleteaspnetcoreelasticsearch_01.png</image:loc><image:title>angular2autocompleteaspnetcoreelasticsearch_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/10/angular2autocompleteaspnetcoreelasticsearch_02.png</image:loc><image:title>angular2autocompleteaspnetcoreelasticsearch_02</image:title></image:image><lastmod>2017-02-10T12:44:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/10/29/angular2-search-with-asp-net-core-and-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/10/searchaspnetcoreangular2_02.png</image:loc><image:title>searchaspnetcoreangular2_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/10/searchaspnetcoreangular2_01.png</image:loc><image:title>searchaspnetcoreangular2_01</image:title></image:image><lastmod>2020-11-21T12:57:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/10/14/using-sass-with-webpack-angular2-and-visual-studio/</loc><lastmod>2017-03-11T13:26:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/06/10/getting-started-with-web-api-and-odata-v4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav4webapi_05.png</image:loc><image:title>odatav4WebApi_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/webappodatav4_06.png</image:loc><image:title>WebAppODataV4_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/webappodatav4_05.png</image:loc><image:title>WebAppODataV4_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/webappodatav4_04.png</image:loc><image:title>WebAppODataV4_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/webappodatav4_03.png</image:loc><image:title>WebAppODataV4_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/webappodatav4_02.png</image:loc><image:title>WebAppODataV4_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/webappodatav4_01.png</image:loc><image:title>WebAppODataV4_01</image:title></image:image><lastmod>2021-06-18T09:56:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/01/24/search-queries-and-filters-with-elasticsearchcrud/</loc><lastmod>2017-02-08T16:50:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/04/21/creating-an-angular-2-component-for-plotly/</loc><lastmod>2017-06-01T11:45:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/01/27/docker-compose-with-asp-net-core-ef-core-and-the-postgresql-image/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/04_postgresqldocker.png</image:loc><image:title>04_postgresqldocker</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/03_postgresqldocker.png</image:loc><image:title>03_postgresqldocker</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/02_postgresqldocker.png</image:loc><image:title>02_postgresqldocker</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/01_postgresqldocker.png</image:loc><image:title>01_postgresqldocker</image:title></image:image><lastmod>2022-01-31T20:32:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/12/24/creating-an-asp-net-core-1-1-vs2017-docker-application/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/12/vs2017_docker_basic_1.png</image:loc><image:title>vs2017_docker_basic_1</image:title></image:image><lastmod>2017-02-03T12:21:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2017/01/21/creating-an-asp-net-core-docker-application-and-deploying-to-azure/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/firstazuredocker_07.png</image:loc><image:title>firstazuredocker_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/firstazuredocker_06.png</image:loc><image:title>firstazuredocker_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/firstazuredocker_05.png</image:loc><image:title>firstazuredocker_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/firstazuredocker_04.png</image:loc><image:title>firstazuredocker_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/firstazuredocker_03.png</image:loc><image:title>firstazuredocker_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/firstazuredocker_02.png</image:loc><image:title>firstazuredocker_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2017/01/firstazuredocker_01.png</image:loc><image:title>firstazuredocker_01</image:title></image:image><lastmod>2025-05-12T11:57:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/03/29/angular-2-child-routing-and-components/</loc><lastmod>2019-03-22T05:29:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/12/13/ef-core-diagnosis-and-features-with-ms-sql-server/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/12/sqlprofiler_efcore_01.png</image:loc><image:title>sqlprofiler_efcore_01</image:title></image:image><lastmod>2016-12-13T22:54:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/11/25/contributing-to-oss-projects-on-github-using-fork-and-upstreams/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/11/githuboss_06.png</image:loc><image:title>githuboss_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/11/githuboss_05.png</image:loc><image:title>githuboss_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/11/githuboss_04.png</image:loc><image:title>githuboss_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/11/githuboss_03.png</image:loc><image:title>githuboss_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/11/githuboss_02.png</image:loc><image:title>githuboss_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/11/githuboss_01.png</image:loc><image:title>githuboss_01</image:title></image:image><lastmod>2016-12-08T11:21:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/09/22/elasticsearch-crud-net-provider/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/09/elasticsearchcrud_02.png</image:loc><image:title>ElasticsearchCRUD_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/09/elasticsearchcrud_01.png</image:loc><image:title>ElasticsearchCRUD_01</image:title></image:image><lastmod>2020-02-14T21:52:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/02/07/plotly-charts-using-angular-asp-net-core-1-0-and-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/plotlyangularaspnetcoreelasticsearch_03.png</image:loc><image:title>plotlyAngularAspNetCoreElasticsearch_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/plotlyangularaspnetcoreelasticsearch_02.png</image:loc><image:title>plotlyAngularAspNetCoreElasticsearch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/02/plotlyangularaspnetcoreelasticsearch_01.png</image:loc><image:title>plotlyAngularAspNetCoreElasticsearch_01</image:title></image:image><lastmod>2016-07-05T05:57:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/09/19/adding-cache-safe-links-to-a-grunt-build-in-asp-net-5/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/09/gruntcache_01.png</image:loc><image:title>gruntCache_01</image:title></image:image><lastmod>2016-07-01T19:33:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/05/12/asp-net-5-typescript-angularjs-application-with-a-grunt-production-configuration/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/05/aspnet5_typescript_02.png</image:loc><image:title>aspnet5_typescript_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/05/taskrunner_011.png</image:loc><image:title>taskrunner_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/05/taskrunner_01.png</image:loc><image:title>taskrunner_01</image:title></image:image><lastmod>2016-07-01T19:28:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/06/11/creating-html-themes-in-asp-net-5-using-sass/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/themessass_02.png</image:loc><image:title>themesSass_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/themessass_01.png</image:loc><image:title>themesSass_01</image:title></image:image><lastmod>2016-07-01T18:29:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/03/28/asp-net-5-angularjs-application-using-angular-ui-router/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/03/aspnet5angularjsrouting.png</image:loc><image:title>AspNet5AngularJsRouting</image:title></image:image><lastmod>2016-07-01T18:22:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/05/28/drag-and-drop-bootstrap-tabs-in-asp-net-5-with-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/05/angularjsdropanddrop_02.png</image:loc><image:title>AngularJsDropAndDrop_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/05/angularjsdropanddrop_01.png</image:loc><image:title>AngularJsDropAndDrop_01</image:title></image:image><lastmod>2016-07-01T16:39:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/02/22/mvc-6-aspnet50-full-text-search-with-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/02/webappaspnet50elasticsearchcrud_index_04.png</image:loc><image:title>WebAppAspNet50ElasticsearchCrud_index_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/02/webappaspnet50elasticsearchcrud_bowerinstall_04.png</image:loc><image:title>WebAppAspNet50ElasticsearchCrud_bowerInstall_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/02/webappaspnet50elasticsearchcrud_nuget_03.png</image:loc><image:title>WebAppAspNet50ElasticsearchCrud_nuget_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/02/webappaspnet50elasticsearchcrud_newproject02.png</image:loc><image:title>WebAppAspNet50ElasticsearchCrud_newProject02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/02/webappaspnet50elasticsearchcrud_newproject01.png</image:loc><image:title>WebAppAspNet50ElasticsearchCrud_newProject01</image:title></image:image><lastmod>2016-07-01T08:35:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/11/17/using-elasticsearch-with-asp-net-5-dnxcore50/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/asp_net5elasticsearchcrud_search_02.png</image:loc><image:title>asp_net5ElasticsearchCrud_search_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/11/asp_net5elasticsearchcrud_created_01.png</image:loc><image:title>asp_net5ElasticsearchCrud_created_01</image:title></image:image><lastmod>2016-09-23T22:27:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/04/26/batching-in-a-asp-net-5-angularjs-application-using-angular-http-batcher/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/04/angularjsbatching_02.png</image:loc><image:title>angularjsBatching_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/04/angularjsbatching_01.png</image:loc><image:title>angularjsBatching_01</image:title></image:image><lastmod>2016-01-23T11:59:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/06/21/an-asp-net-5-angular-application-with-elasticsearch-nest-and-watcher/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/aspnet5elasticsearch_02.png</image:loc><image:title>aspnet5Elasticsearch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/aspnet5elasticsearch_01.png</image:loc><image:title>aspnet5Elasticsearch_01</image:title></image:image><lastmod>2016-01-23T11:55:38+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/06/27/using-elasticsearch-watcher-to-create-data-events-in-asp-net-mvc-6/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/aspnet5watcher_02_06.png</image:loc><image:title>aspNet5Watcher_02_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/aspnet5watcher_02_05.png</image:loc><image:title>aspNet5Watcher_02_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/aspnet5watcher_02_04.png</image:loc><image:title>aspNet5Watcher_02_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/aspnet5watcher_02_03.png</image:loc><image:title>aspNet5Watcher_02_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/aspnet5watcher_02_02.png</image:loc><image:title>aspNet5Watcher_02_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/06/aspnet5watcher_02_01.png</image:loc><image:title>aspNet5Watcher_02_01</image:title></image:image><lastmod>2016-01-23T11:54:35+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/07/05/visualizing-elasticsearch-watcher-events-using-asp-net-5-signalr-and-angular/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/07/signalrwatcher_02.png</image:loc><image:title>SignalRWatcher_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/07/signalrwatcher_01.png</image:loc><image:title>SignalRWatcher_01</image:title></image:image><lastmod>2016-04-20T21:20:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/10/16/asp-net-5-updating-to-beta8-from-older-beta-versions/</loc><lastmod>2016-01-23T11:48:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/09/23/asp-net-5-examples-and-links/</loc><lastmod>2016-01-09T13:54:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2016/01/04/out-of-process-semantic-logging-v2-with-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/el_slab_elasticsearch_02.png</image:loc><image:title>EL_SLAB_Elasticsearch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2016/01/el_slab_elasticsearch_01.png</image:loc><image:title>EL_SLAB_Elasticsearch_01</image:title></image:image><lastmod>2021-02-11T15:04:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/01/31/el-5-0-db-logging/</loc><lastmod>2015-07-21T20:44:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/02/18/mvc-searching-with-elasticsearch-highlighting/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/02/elhighlighting_01.png</image:loc><image:title>ElHighlighting_01</image:title></image:image><lastmod>2015-03-01T09:24:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/02/10/searching-multiple-indices-and-types-in-elasticsearch/</loc><lastmod>2015-03-01T09:24:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/01/28/elasticsearch-bulk-insert/</loc><lastmod>2015-11-07T07:19:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/02/08/elasticsearch-aggregations-with-elasticsearchcrud/</loc><lastmod>2015-03-01T09:24:22+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/01/07/mvc-google-maps-search-using-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/01/geosearch_02.png</image:loc><image:title>geoSearch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2015/01/geosearch_01.png</image:loc><image:title>geoSearch_01</image:title></image:image><lastmod>2015-03-01T09:23:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/12/20/using-elasticsearch-german-analyzer/</loc><lastmod>2015-03-01T09:23:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/12/12/elasticsearch-synonym-analyzer-using-elasticsearchcrud/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/12/analyzerses_02.png</image:loc><image:title>analyzersEs_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/12/analyzerses_01.png</image:loc><image:title>analyzersEs_01</image:title></image:image><lastmod>2015-03-01T09:23:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/11/24/elasticsearch-type-mappings-with-elasticsearchcrud/</loc><lastmod>2015-03-01T09:23:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/11/23/elasticsearch-parent-child-grandchild-documents-and-routing/</loc><lastmod>2018-03-08T04:50:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/11/13/csv-export-using-elasticsearch-and-web-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/11/el_csv_export_02.png</image:loc><image:title>el_csv_export_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/11/el_csv_export_01.png</image:loc><image:title>el_csv_export_01</image:title></image:image><lastmod>2015-03-01T09:23:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/11/07/live-reindex-in-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/11/reindex_el_01.png</image:loc><image:title>reindex_el_01</image:title></image:image><lastmod>2015-03-01T09:23:13+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/11/02/mvc-application-with-entity-framework-and-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/11/ef_el_01.png</image:loc><image:title>ef_el_01</image:title></image:image><lastmod>2018-12-27T20:10:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/10/26/mvc-crud-with-elasticsearch-child-parent-documents/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/el_crud_childparent_01.png</image:loc><image:title>el_crud_childParent_01</image:title></image:image><lastmod>2015-03-01T09:22:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/10/14/transferring-data-to-elasticsearch-from-ms-sql-server-using-elasticsearchcrud-and-entity-framework/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/dt_el_sql_04.png</image:loc><image:title>dt_el_sql_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/dt_el_sql_03.png</image:loc><image:title>dt_el_sql_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/dt_el_sql_02.png</image:loc><image:title>dt_el_sql_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/dt_el_sql_01.png</image:loc><image:title>dt_el_sql_01</image:title></image:image><lastmod>2016-05-29T14:42:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/10/08/mvc-crud-with-elasticsearch-nested-documents/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/fulltestsearchnested_04.png</image:loc><image:title>fullTestsearchnested_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/fulltextsearch_03.png</image:loc><image:title>FullTextSearch_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/fulltextsearchnested_02.png</image:loc><image:title>FullTextSearchNested_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/fulltextsearchnested_01.png</image:loc><image:title>FullTextSearchNested_01</image:title></image:image><lastmod>2015-05-05T14:38:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/10/01/full-text-search-with-asp-net-mvc-jquery-autocomplete-and-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/fulltextsearch_02.png</image:loc><image:title>FullTextSearch_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/10/fulltextsearch_01.png</image:loc><image:title>FullTextSearch_01</image:title></image:image><lastmod>2019-06-14T22:55:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2015/03/01/index-warmers-with-elasticsearchcrud/</loc><lastmod>2015-03-02T02:12:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/01/24/getting-started-with-elasticsearch-and-net/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/esindex07.png</image:loc><image:title>EsIndex07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/esindex06.png</image:loc><image:title>EsIndex06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/esindex05.png</image:loc><image:title>EsIndex05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/esindex04.png</image:loc><image:title>EsIndex04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/eshq03.png</image:loc><image:title>EsHq03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/esfiddler02.png</image:loc><image:title>EsFiddler02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/esenvironmentvariables01.png</image:loc><image:title>EsEnvironmentVariables01</image:title></image:image><lastmod>2016-05-10T11:39:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/01/11/using-protobuf-net-media-formatter-with-web-api-2/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/protobufwebapi03.png</image:loc><image:title>protobufwebapi03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/protobufwebapi02.png</image:loc><image:title>protobufwebapi02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/protobufwebapi01.png</image:loc><image:title>protobufwebapi01</image:title></image:image><lastmod>2017-08-30T09:00:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/03/01/using-web-api-with-a-nest-elasticsearch-backend/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/ellogger.png</image:loc><image:title>elLogger</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapirest06.png</image:loc><image:title>WebAPIRest06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapirest05.png</image:loc><image:title>WebAPIRest05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapirest04.png</image:loc><image:title>WebAPIRest04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapirest03.png</image:loc><image:title>WebAPIRest03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapirest02.png</image:loc><image:title>WebAPIRest02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapirest01.png</image:loc><image:title>WebAPIRest01</image:title></image:image><lastmod>2014-10-13T15:14:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/03/26/web-api-help-pages/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/webapidoc02.png</image:loc><image:title>WebApiDoc02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/webapidoc01.png</image:loc><image:title>WebApiDoc01</image:title></image:image><lastmod>2014-09-18T10:52:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/08/14/web-api-odata-v4-batching-part-10/</loc><lastmod>2017-12-01T15:42:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/07/13/web-api-odata-v4-cache-part-9/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/webapiodatacache_03.png</image:loc><image:title>webapiOdataCache_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/webapiodatacache_02.png</image:loc><image:title>webapiOdataCache_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/webapiodatacache_01.png</image:loc><image:title>webapiOdataCache_01</image:title></image:image><lastmod>2015-09-10T20:22:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/07/09/web-api-odata-v4-using-an-odata-t4-generated-client-part-8/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/odataclientdata_06.png</image:loc><image:title>odataClientData_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/odataclientdata_05.png</image:loc><image:title>odataClientData_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/odataclientdata_04.png</image:loc><image:title>odataClientData_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/odataclientdata_03.png</image:loc><image:title>odataClientData_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/odataclientdata_02.png</image:loc><image:title>odataClientData_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/odataclientdata_01.png</image:loc><image:title>odataClientData_01</image:title></image:image><lastmod>2019-03-04T01:44:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/07/01/web-api-odata-v4-using-a-singleton-part-7/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/odatasingleton_03.png</image:loc><image:title>odataSingleton_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/odatasingleton_01.png</image:loc><image:title>odataSingleton_01</image:title></image:image><lastmod>2014-09-12T20:08:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/06/22/web-api-odata-v4-using-contained-models-part-6/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav406_02.png</image:loc><image:title>odataV406_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav406_01.png</image:loc><image:title>odataV406_01</image:title></image:image><lastmod>2016-06-09T18:01:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/06/19/web-api-odata-v4-using-unity-ioc-sqlite-with-ef6-and-odata-model-aliasing-part-5/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatap5_04.png</image:loc><image:title>odataP5_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatap5_03.png</image:loc><image:title>odataP5_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatap5_02.png</image:loc><image:title>odataP5_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatap5_01.png</image:loc><image:title>odataP5_01</image:title></image:image><lastmod>2014-09-12T20:07:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/06/18/web-api-odata-v4-using-enum-with-functions-and-entities-part-4/</loc><lastmod>2014-10-29T07:15:26+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/06/16/web-api-and-odata-v4-crud-and-actions-part-3/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav4webapi_08.png</image:loc><image:title>odatav4WebApi_08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav4webapi_07.png</image:loc><image:title>odatav4WebApi_07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav4webapi_06.png</image:loc><image:title>odatav4WebApi_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav4webapi_02.png</image:loc><image:title>odatav4WebApi_02</image:title></image:image><lastmod>2014-11-17T23:19:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/06/13/web-api-and-odata-v4-queries-functions-and-attribute-routing-part-2/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav4webapi_04.png</image:loc><image:title>odatav4WebApi_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav4webapi_03.png</image:loc><image:title>odatav4WebApi_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/odatav4webapi_01.png</image:loc><image:title>odatav4WebApi_01</image:title></image:image><lastmod>2019-08-11T15:22:12+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/09/12/web-api-odata-v4-keys-composite-keys-and-functions-part-11/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/09/webapifunctionskeys_03.png</image:loc><image:title>webApifunctionsKeys_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/09/webapifunctionskeys_02.png</image:loc><image:title>webApifunctionsKeys_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/09/webapifunctionskeys_01.png</image:loc><image:title>webApifunctionsKeys_01</image:title></image:image><lastmod>2019-07-25T06:42:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/08/29/policeman-guard-nuget-package/</loc><lastmod>2014-09-02T00:29:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/08/22/web-api-2-exploring-parameter-binding/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/08/webapiparams_05_json.png</image:loc><image:title>WebApiParams_05_json</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/08/webapiparams_04_xml.png</image:loc><image:title>WebApiParams_04_xml</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/08/webapiparams_03.png</image:loc><image:title>WebApiParams_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/08/webapiparams_02.png</image:loc><image:title>WebApiParams_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/08/webapiparams_01.png</image:loc><image:title>WebApiParams_01</image:title></image:image><lastmod>2021-11-15T18:41:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/07/16/web-api-using-gzip-compression/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/webapigzip_02.png</image:loc><image:title>webapigzip_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/07/webapigzip_01.png</image:loc><image:title>webapigzip_01</image:title></image:image><lastmod>2016-11-01T10:33:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/04/10/web-api-tracing-with-slab-and-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/slabtracing02.png</image:loc><image:title>slabTracing02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/slabtracing01.png</image:loc><image:title>slabTracing01</image:title></image:image><lastmod>2016-01-04T21:24:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/11/18/using-sqlite-with-entity-framework-6-and-the-repository-pattern/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqliteef6_02.png</image:loc><image:title>SqliteEF6_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqliteef6.png</image:loc><image:title>SqliteEF6</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqliterepoupdate02.png</image:loc><image:title>sqliteRepoUpdate02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqliterepoupdate01.png</image:loc><image:title>sqliteRepoUpdate01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqlite04.png</image:loc><image:title>sqlite04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqlite03.png</image:loc><image:title>sqlite03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqlite02.png</image:loc><image:title>sqlite02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqlite01.png</image:loc><image:title>sqlite01</image:title></image:image><lastmod>2017-01-17T18:06:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/05/04/web-api-2-excel-file-export-with-oauth2-implicit-flow/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_06.png</image:loc><image:title>excelExportOAuth2_06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_05.png</image:loc><image:title>excelExportOAuth2_05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_04.png</image:loc><image:title>excelExportOAuth2_04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_07_02.png</image:loc><image:title>excelExportOAuth2_07_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_07_01.png</image:loc><image:title>excelExportOAuth2_07_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_07_00.png</image:loc><image:title>excelExportOAuth2_07_00</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_07_key.png</image:loc><image:title>excelExportOAuth2_07_Key</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_03.png</image:loc><image:title>excelExportOAuth2_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_02.png</image:loc><image:title>excelExportOAuth2_02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/excelexportoauth2_01.png</image:loc><image:title>excelExportOAuth2_01</image:title></image:image><lastmod>2014-06-22T15:40:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/11/13/the-end-of-wcf-is-on-the-horizon/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/wcf_webapi2_signalr2.png</image:loc><image:title>WCF_WebApi2_SignalR2</image:title></image:image><lastmod>2014-06-20T08:16:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/04/08/web-api-file-upload-with-ms-sql-server-filetable/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/filetablewebapi03.png</image:loc><image:title>FileTableWebApi03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/filetablewebapi02.png</image:loc><image:title>FileTableWebApi02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/filetablewebapi01.png</image:loc><image:title>FileTableWebApi01</image:title></image:image><lastmod>2022-02-15T17:34:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/06/03/signalr-self-hosting-template-for-a-windows-service/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/signalrservice021.png</image:loc><image:title>SignalRService02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/signalrservice02.png</image:loc><image:title>SignalRService02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/06/signalrservice01.png</image:loc><image:title>SignalRService01</image:title></image:image><lastmod>2017-10-18T08:08:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/06/01/web-api-github-oauth2-code-flow/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/oauth2github07.png</image:loc><image:title>oauth2Github07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/oauth2github06.png</image:loc><image:title>oauth2Github06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/oauth2github05.png</image:loc><image:title>oauth2Github05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/oauth2github04.png</image:loc><image:title>oauth2Github04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/oauth2github03.png</image:loc><image:title>oauth2Github03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/oauth2github02.png</image:loc><image:title>oauth2Github02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/oauth2github01.png</image:loc><image:title>oauth2Github01</image:title></image:image><lastmod>2014-06-10T19:22:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/02/12/exploring-web-api-exception-handling/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapiex03.png</image:loc><image:title>webapiEx03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapiex02.png</image:loc><image:title>webapiEx02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/webapiex01.png</image:loc><image:title>webapiEx01</image:title></image:image><lastmod>2016-01-18T12:44:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/03/09/data-transfers-with-web-api-batching-and-protobuf/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/batchingprotobuf01.png</image:loc><image:title>batchingProtobuf01</image:title></image:image><lastmod>2014-05-21T03:18:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/05/18/exploring-web-api-2-caching/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/cachecowexample_03.png</image:loc><image:title>cacheCowExample_03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/cachecowexample_01.png</image:loc><image:title>cacheCowExample_01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/05/cachecowexample_02.png</image:loc><image:title>cacheCowExample_02</image:title></image:image><lastmod>2015-08-31T22:41:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/03/12/messagehandlers-and-service-versions-in-web-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/messagehandlerwebapiversion02.png</image:loc><image:title>MessageHandlerWebAPiVersion02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/messagehandlerwebapiversion01.png</image:loc><image:title>MessageHandlerWebAPiVersion01</image:title></image:image><lastmod>2016-02-03T18:10:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/04/16/iis-https-configuration-for-team-development/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment08.png</image:loc><image:title>settingUpHttpsForTeamDevelopment08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment09.png</image:loc><image:title>settingUpHttpsForTeamDevelopment09</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment07.png</image:loc><image:title>settingUpHttpsForTeamDevelopment07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment06.png</image:loc><image:title>settingUpHttpsForTeamDevelopment06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment05.png</image:loc><image:title>settingUpHttpsForTeamDevelopment05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment04.png</image:loc><image:title>settingUpHttpsForTeamDevelopment04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment03.png</image:loc><image:title>settingUpHttpsForTeamDevelopment03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment02.png</image:loc><image:title>settingUpHttpsForTeamDevelopment02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/settinguphttpsforteamdevelopment01.png</image:loc><image:title>settingUpHttpsForTeamDevelopment01</image:title></image:image><lastmod>2014-04-16T20:03:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/08/08/mvc-real-time-diagnosis-using-signalr/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/diagnosisview.jpg</image:loc><image:title>DiagnosisView</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/nugetsignalr.jpg</image:loc><image:title>nugetSignalR</image:title></image:image><lastmod>2022-09-17T08:52:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/02/01/semantic-logging-with-elasticsearch/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/elasticsearchslab02.png</image:loc><image:title>elasticsearchSlab02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/02/elasticsearchslab01.png</image:loc><image:title>elasticsearchSlab01</image:title></image:image><lastmod>2014-04-12T04:36:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/06/08/enterprise-library-6-semantic-logging-part-2-out-of-process/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/eloutofprocessdiagram.jpg</image:loc><image:title>ELoutOfProcessDiagram</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/slabxmlconfig.jpg</image:loc><image:title>SLABxmlConfig</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/slaboutofprocess.jpg</image:loc><image:title>SLABoutOfProcess</image:title></image:image><lastmod>2016-02-16T04:08:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/04/02/semanic-logging-with-elasticsearch-using-semanticlogging-elasticsearch-nuget-package/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/slabellogging02.png</image:loc><image:title>SlabELLogging02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/04/slabellogging01.png</image:loc><image:title>SlabELLogging01</image:title></image:image><lastmod>2016-02-16T04:59:27+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/03/28/web-api-file-upload-single-or-multiple-files/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/multiclientfileupload02.png</image:loc><image:title>MultiClientFileupload02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/multiclientfileupload01.png</image:loc><image:title>MultiClientFileupload01</image:title></image:image><lastmod>2020-09-16T10:07:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/03/20/web-api-localization/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/webapilocalization05.png</image:loc><image:title>webApiLocalization05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/webapilocalization04.png</image:loc><image:title>webApiLocalization04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/webapilocalization02.png</image:loc><image:title>webApiLocalization02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/webapilocalization03.png</image:loc><image:title>webApiLocalization03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/webapilocalization01.png</image:loc><image:title>webApiLocalization01</image:title></image:image><lastmod>2017-08-24T17:11:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/03/16/managing-internal-libraries-dependencies/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/libdependencies03.png</image:loc><image:title>libDependencies03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/libdep02.png</image:loc><image:title>libdep02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/03/libdependencies01.png</image:loc><image:title>libDependencies01</image:title></image:image><lastmod>2014-03-16T14:51:16+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/11/05/using-signalr-with-unity/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/signalrunity2.png</image:loc><image:title>SignalRUnity2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/signalrunity1.png</image:loc><image:title>SignalRUnity1</image:title></image:image><lastmod>2017-12-30T21:02:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/06/07/enterprise-library-basic-semantic-logging-database/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/slabinprocess.jpg</image:loc><image:title>SLABInProcess</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/el6nugetsemanticloggingtable.jpg</image:loc><image:title>EL6NugetSemanticLoggingTable</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/el6nugetsemanticloggingpackages.jpg</image:loc><image:title>EL6NugetSemanticLoggingPackages</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/el6nugetsemanticloggingdb.jpg</image:loc><image:title>EL6NugetSemanticLoggingDb</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/el6nugetsemanticlogging.jpg</image:loc><image:title>EL6NugetSemanticLogging</image:title></image:image><lastmod>2016-02-16T04:07:47+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/11/14/using-sqlite-with-net/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sqlitedb1.png</image:loc><image:title>sqliteDb1</image:title></image:image><lastmod>2017-02-08T10:58:35+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/01/31/git-helps/</loc><lastmod>2014-02-07T18:03:38+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/01/04/web-api-2-using-actionfilterattribute-overrideactionfiltersattribute-and-ioc-injection/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/actionfilters08.png</image:loc><image:title>ActionFilters08</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/actionfilters07.png</image:loc><image:title>ActionFilters07</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/actionfilters06.png</image:loc><image:title>ActionFilters06</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/actionfilters05.png</image:loc><image:title>ActionFilters05</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/actionfilters04.png</image:loc><image:title>ActionFilters04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/actionfilters03.png</image:loc><image:title>ActionFilters03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/actionfilters02.png</image:loc><image:title>ActionFilters02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/actionfilters01.png</image:loc><image:title>ActionFilters01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2014/01/webapifilters01.png</image:loc><image:title>WebApiFilters01</image:title></image:image><lastmod>2017-06-13T03:23:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/12/15/how-to-create-strong-named-assemblies-in-net/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/strongnamesnk04.png</image:loc><image:title>StrongNameSnk04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/strongnamesnk03.png</image:loc><image:title>StrongNameSnk03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/strongnamesnk02.png</image:loc><image:title>StrongNameSnk02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/strongnamesnk01.png</image:loc><image:title>StrongNameSnk01</image:title></image:image><lastmod>2014-02-06T07:57:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/10/01/self-host-webapi-with-owin-and-unity/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/unitynugetwebapi.gif</image:loc><image:title>UnityNugetWebApi</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/fillderdebugwebapi.gif</image:loc><image:title>fillderDebugWebApi</image:title></image:image><lastmod>2017-07-24T08:51:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/12/04/net-software-applications-architecture-overview/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/archoverview.png</image:loc><image:title>ArchOverview</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/weboverview1.png</image:loc><image:title>WebOverview</image:title></image:image><lastmod>2014-02-02T16:34:06+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/01/27/multiple-viewmodels-in-a-single-mvc-view/</loc><lastmod>2017-11-12T16:41:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/10/09/selfhost-webapi-with-owin-and-unity-using-a-nuget-package/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/10/nugetgalleryupload.png</image:loc><image:title>NuGetGalleryUpload</image:title></image:image><lastmod>2014-01-26T15:36:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/10/12/self-hosted-web-api-using-owin-and-unity-nuget-package-documentation/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/10/unityselfnuget.png</image:loc><image:title>UnitySelfNuget</image:title></image:image><lastmod>2014-05-29T04:02:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/01/09/comparing-protobuf-json-bson-xml-with-net-for-file-streams/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/serializationtests04.png</image:loc><image:title>serializationTests04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/serializationtests03.png</image:loc><image:title>serializationTests03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/serializationtests02.png</image:loc><image:title>serializationTests02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/serializationtests01.png</image:loc><image:title>serializationTests01</image:title></image:image><lastmod>2017-07-25T15:58:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/10/21/windows-service-with-self-hosted-wep-api-2/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/10/fiddlerdebug.png</image:loc><image:title>FiddlerDebug</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/10/nugetselfhost.png</image:loc><image:title>NugetSelfHost</image:title></image:image><lastmod>2014-04-23T15:36:07+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/09/15/aop-with-asp-net-web-api/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/aoplogs.jpg</image:loc><image:title>AOPLogs</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/nugetunitywebapi.jpg</image:loc><image:title>nugetUnityWebApi</image:title></image:image><lastmod>2018-08-22T18:45:22+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2014/01/01/signalr-message-buffers-with-sqlite/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/signalrsqlite04.png</image:loc><image:title>SignalRSqlite04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/signalrsqlite03.png</image:loc><image:title>SignalRSqlite03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/signalrsqlite02.png</image:loc><image:title>SignalRSqlite02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/signalrsqlite011.png</image:loc><image:title>SignalRSqlite01</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/signalrsqlite01.png</image:loc><image:title>SignalRSqlite01</image:title></image:image><lastmod>2014-01-01T08:00:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/12/18/creating-an-mvc5-app-with-unity-slab-and-attribute-routing/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/mvc5unityslab04.png</image:loc><image:title>Mvc5UnitySlab04</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/mvc5unityslab03.png</image:loc><image:title>Mvc5UnitySlab03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/mvc5unityslab02.png</image:loc><image:title>Mvc5UnitySlab02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/mvc5unityslab01.png</image:loc><image:title>Mvc5UnitySlab01</image:title></image:image><lastmod>2015-04-23T06:22:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/12/12/how-to-create-a-professional-versioning-in-a-net-solution/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/projectsetup03.png</image:loc><image:title>ProjectSetup03</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/projectsetup02.png</image:loc><image:title>ProjectSetup02</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/12/projectsetup01.png</image:loc><image:title>ProjectSetup01</image:title></image:image><lastmod>2022-09-02T15:22:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/05/01/how-to-create-a-nuget-server/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/05/running.jpg</image:loc><image:title>running</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/05/nugetinstall.jpg</image:loc><image:title>NugetInstall</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/05/createwebapplication.jpg</image:loc><image:title>CreateWebApplication</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/05/deletewebconfig.jpg</image:loc><image:title>deleteWebConfig</image:title></image:image><lastmod>2013-12-03T19:34:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/12/03/mvc-web-http-https-application-monitoring-tools/</loc><lastmod>2016-07-26T01:52:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/08/06/windows-8-app-with-semantic-logging/</loc><lastmod>2013-11-30T10:04:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/11/20/signalr-a-complete-wpf-client-using-mvvm/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/wpfsignalr1.png</image:loc><image:title>wpfSignalR1</image:title></image:image><lastmod>2017-05-19T02:54:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/09/05/turning-off-validation-for-properties-in-a-mvc-model/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/htmlvalidationtags.jpg</image:loc><image:title>htmlValidationTags</image:title></image:image><lastmod>2013-11-13T19:05:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/11/13/signalr-messaging-a-complete-client-with-a-console-application/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/serversentmessages1.png</image:loc><image:title>ServerSentMessages</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/signalrserverreconnected.png</image:loc><image:title>SignalRServerReconnected</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/signalrclientreconnected.png</image:loc><image:title>SignalRClientReconnected</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/serversentmessages.png</image:loc><image:title>ServerSentMessages</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/clientsentmessages.png</image:loc><image:title>ClientSentMessages</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/clientmessagesnoserverconnected.png</image:loc><image:title>clientMessagesNoServerConnected</image:title></image:image><lastmod>2013-11-13T11:47:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/11/12/signalr-messaging-a-more-complete-console-server/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/sigrhub1.png</image:loc><image:title>SigRHub1</image:title></image:image><lastmod>2020-04-19T05:48:31+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/10/25/slab-logging-with-an-ioc-container/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/10/slab2.png</image:loc><image:title>slab2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/10/slab1.png</image:loc><image:title>slab1</image:title></image:image><lastmod>2013-11-03T18:27:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/11/01/signalr-messaging-with-console-server-and-client-web-client-wpf-client/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/signalrmessagesconsoleclient.png</image:loc><image:title>SignalRMessagesConsoleClient</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/signalrmessageswpfclient.png</image:loc><image:title>SignalRMessagesWPfClient</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/signalrmessageswebclient.png</image:loc><image:title>SignalRMessagesWebClient</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/11/signalrmessagesserver.png</image:loc><image:title>SignalRMessagesServer</image:title></image:image><lastmod>2018-02-11T08:17:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/09/02/wix-installer-for-mvc-project/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/configuartionmanagerrelease.jpg</image:loc><image:title>ConfiguartionManagerRelease</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/configuartionmanagerdebug.jpg</image:loc><image:title>ConfiguartionManagerDebug</image:title></image:image><lastmod>2015-11-03T14:17:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/09/03/mvc-async-file-upload/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/asyncfileupload.jpg</image:loc><image:title>AsyncFileUpload</image:title></image:image><lastmod>2014-06-22T11:00:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/08/20/creating-a-silent-msi-for-semantic-logging-out-of-process-service-using-wix/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/harvest.jpg</image:loc><image:title>harvest</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/servicesslab.jpg</image:loc><image:title>ServicesSLAB</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/programcontolpanel.jpg</image:loc><image:title>programContolPanel</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/wixnewproject.jpg</image:loc><image:title>WiXNewProject</image:title></image:image><lastmod>2013-10-02T18:23:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/06/10/enterprise-library-6-semantic-logging-part-3-getting-into-the-details/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/slabkeywordresults.jpg</image:loc><image:title>SLABKeywordResults</image:title></image:image><lastmod>2016-02-16T04:08:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/06/10/enterprise-library-6-semantic-logging-part-4-advantages-customising/</loc><lastmod>2016-02-16T04:09:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/06/25/enterprise-library-6-unity-3-interfaceinterceptor-with-mvc-4-part-4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/logsinterception.jpg</image:loc><image:title>LogsInterception</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/nugetinterception.jpg</image:loc><image:title>NugetInterception</image:title></image:image><lastmod>2014-10-01T19:50:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/09/10/windows-8-app-using-unity-3-ioc/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/09/nugetunitywin8.jpg</image:loc><image:title>NugetUnityWin8</image:title></image:image><lastmod>2013-10-22T06:25:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/09/09/wix-installer-with-parameter-configurations/</loc><lastmod>2015-01-21T03:04:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/03/14/draft-web-users-interfaces-which-approach/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/03/classicdesktop-copy.jpg</image:loc><image:title>ClassicDesktop - Copy</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/03/appsanddesktop.jpg</image:loc><image:title>AppsAndDesktop</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/03/2userinterfaces.jpg</image:loc><image:title>2UserInterfaces</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/03/mobilelast.jpg</image:loc><image:title>mobilelast</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/03/mobilefirst.jpg</image:loc><image:title>mobilefirst</image:title></image:image><lastmod>2013-09-08T18:19:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/09/01/wix-installer-with-powershell-scripts/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/psscriptpolicy.jpg</image:loc><image:title>psScriptPolicy</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/deployment.jpg</image:loc><image:title>Deployment</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/08/installprocedure1.jpg</image:loc><image:title>installProcedure</image:title></image:image><lastmod>2018-04-10T12:02:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/02/12/windows-8-metro-app-deployment/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/troubleshooting3.png</image:loc><image:title>troubleshooting3</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/troubleshooting2.png</image:loc><image:title>troubleshooting2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/troubleshooting1.png</image:loc><image:title>troubleshooting1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/deploymentprobleminvalidcert.png</image:loc><image:title>deploymentProblemInvalidCert</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/deploy4.png</image:loc><image:title>deploy4</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/deploy3.png</image:loc><image:title>deploy3</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/deploy2.png</image:loc><image:title>deploy2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/deploy1.png</image:loc><image:title>deploy1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/createkey4.png</image:loc><image:title>createkey4</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/createkey3.png</image:loc><image:title>createkey3</image:title></image:image><lastmod>2013-08-15T19:49:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/08/01/validation-in-mvc-enterprise-library-fluent-validation-data-annotations-foolproof/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/validationcompare.jpg</image:loc><image:title>ValidationCompare</image:title></image:image><lastmod>2013-08-02T07:22:04+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/07/11/simple-mvc-application-using-standard-validation/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/customvalidation.jpg</image:loc><image:title>CustomValidation</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/clientvalidationerrorsmvc.jpg</image:loc><image:title>ClientValidationErrorsMVC</image:title></image:image><lastmod>2013-07-12T05:10:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/07/11/simple-mvc-application-using-fluentvalidation-mvc4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/fluentvalidation2.jpg</image:loc><image:title>FluentValidation2</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/fluentvalidation1.jpg</image:loc><image:title>FluentValidation1</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/nugetfluent.jpg</image:loc><image:title>NugetFluent</image:title></image:image><lastmod>2020-11-02T14:48:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/07/10/simple-mvc-application-using-enterprise-library-validation/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/elvalidationresults.jpg</image:loc><image:title>ELValidationResults</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/nugetelvalidation.jpg</image:loc><image:title>nugetELValidation</image:title></image:image><lastmod>2015-04-29T20:57:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/06/15/enterprise-library-6-unity-3-with-asp-net-mvc-4/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/nugetuntiy3.jpg</image:loc><image:title>NugetUntiy3</image:title></image:image><lastmod>2013-07-02T04:42:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/06/18/enterprise-library-6-unity-3-and-mvc-lifetimemanagers/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/logsunityofworkunityexample.jpg</image:loc><image:title>LogsUnityOfWorkUnityExample</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/06/logsforasinglerequest1.jpg</image:loc><image:title>LogsForASingleRequest</image:title></image:image><lastmod>2013-07-30T18:36:35+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/06/20/enterprise-library-6-unity-3-and-mvc-4-registration-by-convention-part-3/</loc><lastmod>2013-07-02T04:41:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/07/01/enterprise-library-6-unity-3-mvc-validation-with-interception-validationcallhandler-part-5/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/injectioncycle.jpg</image:loc><image:title>injectionCycle</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/injection.jpg</image:loc><image:title>Injection</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/07/validationnuget.jpg</image:loc><image:title>ValidationNuget</image:title></image:image><lastmod>2013-07-02T04:41:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/01/31/sql-2012-contained-database/</loc><lastmod>2013-06-10T11:45:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/01/31/welcome-to-my-blog/</loc><lastmod>2013-06-04T19:09:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/05/22/mobile-or-desktop-ui-which-ones-should-i-choose/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/05/ui_mobileordesktop2.jpg</image:loc><image:title>UI_mobileOrDesktop</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/05/costcomplexitydiagram2sepui.jpg</image:loc><image:title>CostComplexityDiagram2SepUI</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/05/costcomplexitydiagram.jpg</image:loc><image:title>CostComplexityDiagram</image:title></image:image><lastmod>2013-05-23T12:25:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/04/18/ef5-support-for-multiple-domains/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/04/efdomaindiagnostic.gif</image:loc><image:title>EFdomainDiagnostic</image:title></image:image><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/04/efdomainbusiness.gif</image:loc><image:title>EFdomainBusiness</image:title></image:image><lastmod>2013-04-29T09:37:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/03/13/windows-8-app-deployment/</loc><lastmod>2013-03-14T10:10:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/03/13/deployment-to-target-windows-8-enterprise/</loc><lastmod>2013-03-14T10:10:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/02/05/tfs-includes-git-support/</loc><lastmod>2013-02-05T09:24:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/02/01/ms-sql-2012-filetable-for-existing-instance/</loc><lastmod>2013-04-18T11:49:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com/2013/02/03/filetable-with-new-db-instance/</loc><image:image><image:loc>https://damienbod.com/wp-content/uploads/2013/02/filetablenew.png</image:loc><image:title>FileTableNew</image:title></image:image><lastmod>2013-02-03T15:50:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://damienbod.com</loc><changefreq>daily</changefreq><priority>1.0</priority><lastmod>2026-03-09T09:06:26+00:00</lastmod></url></urlset>
