41554 blogs · [ { "id": "01a08790-7079-7004-bc18-b6fbc912f5b4", "title": "Durable Functions Deep Dive part 4: Executing an activity", "url": "https://joonasw.net/view/durable-functions-deep-dive-part-4-executing-an-activity", "published_at": "2025-11-30T11:56:28+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eedd6a440f", "title": "What the heck is Azure Key Vault Managed HSM", "url": "https://joonasw.net/view/what-the-heck-is-azure-key-vault-managed-hsm", "published_at": "2025-07-26T01:03:31+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eedddcf9c1", "title": "Deploying EF Core migrations in release pipelines", "url": "https://joonasw.net/view/deploying-ef-core-migrations-in-release-pipelines", "published_at": "2025-07-12T04:17:30+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eede40d541", "title": "Good enough security for an Azure PaaS application", "url": "https://joonasw.net/view/good-enough-security-for-an-azure-paas-application", "published_at": "2025-03-26T16:07:52+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eede6030bc", "title": "Building a vehicle location tracking app in Azure part 5: Front-end", "url": "https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-5-front-end", "published_at": "2024-03-20T07:37:19+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eedec366ee", "title": "Building a vehicle location tracking app in Azure part 4: SignalR", "url": "https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-4-signalr", "published_at": "2024-03-14T08:57:13+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eedee5ca0e", "title": "Building a vehicle location tracking app in Azure part 3: Function App", "url": "https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-3-function-app", "published_at": "2024-03-12T09:56:44+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eedfcc3bad", "title": "Building a vehicle location tracking app in Azure part 2: Device simulator", "url": "https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-2-device-simulator", "published_at": "2024-02-29T12:20:32+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee00acbd4", "title": "Building a vehicle location tracking app in Azure part 1: Architecture", "url": "https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-1-architecture", "published_at": "2024-02-22T16:19:54+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee031dd4a", "title": "Using Azure Key Vault for signing and encrypting JSON Web Tokens", "url": "https://joonasw.net/view/using-azure-key-vault-for-signing-and-encrypting-json-web-tokens", "published_at": "2024-02-20T14:50:52+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee10a3fa7", "title": "Durable Functions Deep Dive part 3: Running an activity", "url": "https://joonasw.net/view/durable-functions-deep-dive-part-3-running-an-activity", "published_at": "2022-09-11T13:02:51+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee1c491bd", "title": "Durable Functions Deep Dive part 2: Starting an orchestration", "url": "https://joonasw.net/view/durable-functions-deep-dive-part-2-starting-an-orchestration", "published_at": "2022-04-08T19:07:20+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee2c14580", "title": "Durable Functions Deep Dive part 1: Instance startup", "url": "https://joonasw.net/view/durable-functions-deep-dive-part-1-instance-startup", "published_at": "2022-03-27T13:56:27+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee3224157", "title": "Building a code sandbox with Durable Functions and Container Instances", "url": "https://joonasw.net/view/building-code-sandbox-with-durable-functions-and-container-instances", "published_at": "2022-03-20T19:27:54+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee3226215", "title": "Azure AD JWT authentication in .NET isolated process Azure Functions", "url": "https://joonasw.net/view/azure-ad-jwt-authentication-in-net-isolated-process-azure-functions", "published_at": "2021-09-12T12:12:25+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee36be701", "title": "Migrating social accounts to Azure AD B2C", "url": "https://joonasw.net/view/migrating-social-accounts-to-azure-ad-b2c", "published_at": "2021-06-30T15:58:48+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee37026e1", "title": "Arrays in ASP.NET MVC Core route parameters", "url": "https://joonasw.net/view/arrays-in-aspnet-mvc-core-route-parameters", "published_at": "2021-04-30T14:22:19+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee4591be2", "title": "Access data in Cosmos DB with Managed Identities", "url": "https://joonasw.net/view/access-data-in-cosmos-db-with-managed-identities", "published_at": "2021-04-15T05:42:20+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee53ab67f", "title": "Track activity and sub-orchestrator progress in Azure Durable Functions orchestrators", "url": "https://joonasw.net/view/track-activity-and-sub-orchestrator-progress-in-azure-durable-functions-orchestrators", "published_at": "2021-04-03T09:44:59+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee5e6b874", "title": "Building Azure AD B2C custom policies part 2: Azure DevOps automated build and deployment", "url": "https://joonasw.net/view/building-azure-ad-b2c-custom-policies-part-2-azure-devops-automated-build-and-deployment", "published_at": "2021-03-06T08:52:12+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee6850e61", "title": "Building Azure AD B2C custom policies part 1: Visual Studio Code and manual deployment", "url": "https://joonasw.net/view/building-azure-ad-b2c-custom-policies-part-1-vs-code-and-manual-deployment", "published_at": "2021-01-23T13:54:36+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee6d9b09d", "title": "Get a Managed Identity access token in Azure App Service through Advanced Tools (Kudu)", "url": "https://joonasw.net/view/get-managed-identity-access-token-in-azure-app-service-through-kudu", "published_at": "2021-01-22T14:49:34+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee74b8a46", "title": "Moving .NET Core user secrets to another computer", "url": "https://joonasw.net/view/moving-net-core-user-secrets-to-another-computer", "published_at": "2021-01-13T17:33:08+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee835fa08", "title": "Cleaning up Azure Durable Functions execution history", "url": "https://joonasw.net/view/cleaning-up-azure-durable-functions-execution-history", "published_at": "2020-10-27T18:19:44+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee8c8f23e", "title": "Using Azure RBAC with Azure Key Vault", "url": "https://joonasw.net/view/using-azure-rbac-with-azure-key-vault", "published_at": "2020-09-24T11:20:12+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eee9b1d8d2", "title": "Azure AD v2 and MSAL in 2020", "url": "https://joonasw.net/view/azure-ad-v2-and-msal-in-2020", "published_at": "2020-08-31T11:37:37+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeea8573e5", "title": "How Azure Durable Functions scale", "url": "https://joonasw.net/view/how-azure-durable-functions-scale", "published_at": "2020-06-04T05:33:53+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeeb21a0af", "title": "Hide actions from Swagger / OpenAPI documentation in ASP.NET Core", "url": "https://joonasw.net/view/hide-actions-from-swagger-openapi-documentation-in-aspnet-core", "published_at": "2020-03-16T10:41:48+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeebe37740", "title": "ASP.NET Core Data Protection with Azure Key Vault and Azure Storage", "url": "https://joonasw.net/view/aspnet-core-data-protection-with-azure-key-vault-and-azure-storage", "published_at": "2020-03-14T12:23:28+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeec0c17cd", "title": "Azure Cosmos DB Free Tier", "url": "https://joonasw.net/view/azure-cosmos-db-free-tier", "published_at": "2020-03-07T10:02:28+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeec944208", "title": "Testing Azure AD-protected APIs, part 5: Pipelines in Azure DevOps", "url": "https://joonasw.net/view/testing-azure-ad-protected-apis-part-5-pipelines-in-azure-devops", "published_at": "2020-01-25T10:15:48+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeed2fa640", "title": "Testing Azure AD-protected APIs, part 4: GitHub Actions CI workflow", "url": "https://joonasw.net/view/testing-azure-ad-protected-apis-part-4-github-actions-ci-workflow", "published_at": "2020-01-05T12:14:30+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeed90b21f", "title": "Testing Azure AD-protected APIs, part 3: Automated integration tests", "url": "https://joonasw.net/view/testing-azure-ad-protected-apis-part-3-automated-integration-tests", "published_at": "2019-12-29T14:41:01+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeee195546", "title": "Testing Azure AD-protected APIs, part 2: Postman", "url": "https://joonasw.net/view/testing-azure-ad-protected-apis-part-2-postman", "published_at": "2019-11-20T18:23:26+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeee4754de", "title": "Testing Azure AD-protected APIs, part 1: Swagger UI", "url": "https://joonasw.net/view/testing-azure-ad-protected-apis-part-1-swagger-ui", "published_at": "2019-11-11T09:46:16+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeef1bc98e", "title": "Setting up a free HTTPS certificate in Azure App Service", "url": "https://joonasw.net/view/setting-up-free-https-certificate-in-azure-app-service", "published_at": "2019-11-05T18:16:04+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeefec3e4d", "title": "Speaking at Techorama NL 2019 about Managed Identities", "url": "https://joonasw.net/view/speaking-at-techorama-nl-2019-about-managed-identities", "published_at": "2019-09-21T13:27:10+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eeeffd892a", "title": "Cross-tenant token attacks are now harder in Azure AD", "url": "https://joonasw.net/view/cross-tenant-token-attacks-now-harder-in-azure-ad", "published_at": "2019-08-24T18:05:56+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef03e2e95", "title": "Always check permissions in tokens in an Azure AD protected API", "url": "https://joonasw.net/view/always-check-token-permissions-in-aad-protected-api", "published_at": "2019-08-05T15:20:33+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef1191081", "title": "Why you should not put secrets in native applications", "url": "https://joonasw.net/view/why-you-should-not-put-secrets-in-native-applications", "published_at": "2019-05-29T18:59:27+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef18b985f", "title": "Keeping secrets out of version control in .NET applications", "url": "https://joonasw.net/view/keeping-secrets-out-of-version-control-in-net-applications", "published_at": "2019-05-26T09:48:19+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef1f67c8e", "title": "Best practices for N-tenant Azure AD applications", "url": "https://joonasw.net/view/best-practices-for-n-tenant-azure-ad-applications", "published_at": "2019-05-21T19:29:09+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef2c0bf05", "title": "Resource Owner Password Credentials grant flow in Azure AD", "url": "https://joonasw.net/view/ropc-grant-flow-in-azure-ad", "published_at": "2019-05-05T22:49:47+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef33f9a6e", "title": "Avoiding wildcard reply URLs with MSAL.js", "url": "https://joonasw.net/view/avoiding-wildcard-reply-urls-with-msal-js", "published_at": "2019-05-02T14:01:09+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef3fbf3a7", "title": "Using groups vs using application roles for authorization in Azure AD apps", "url": "https://joonasw.net/view/using-groups-vs-using-app-roles-in-azure-ad-apps", "published_at": "2019-04-21T18:26:16+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef4cc79b2", "title": "Using Azure Key Vault and Azure Storage to store Data Protection keys with ASP.NET Core", "url": "https://joonasw.net/view/using-azure-key-vault-and-azure-storage-for-asp-net-core-data-protection-keys", "published_at": "2019-04-07T13:13:48+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef5bbf3a7", "title": "Exploring the new .NET Cosmos DB SDK (v3)", "url": "https://joonasw.net/view/exploring-cosmos-db-sdk-v3", "published_at": "2019-01-25T18:33:19+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef63b5590", "title": "Implementing Azure AD Single Sign-Out in ASP.NET Core", "url": "https://joonasw.net/view/aad-single-sign-out-in-asp-net-core", "published_at": "2018-11-23T17:37:09+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef71323bd", "title": "Accessing Azure Service Bus with Managed Identities", "url": "https://joonasw.net/view/azure-service-bus-managed-identities", "published_at": "2018-11-03T10:18:23+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef804dbdd", "title": "Azure AD Authentication in ASP.NET Core APIs part 2: Custom permissions, multi-tenant APIs", "url": "https://joonasw.net/view/azure-ad-authentication-aspnet-core-api-part-2", "published_at": "2018-08-02T16:44:51+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef84083cf", "title": "Azure AD Managed Service Identity July 2018 Updates", "url": "https://joonasw.net/view/azure-ad-msi-july-2018-updates", "published_at": "2018-07-31T12:16:28+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef89623f7", "title": "Azure AD Authentication in ASP.NET Core APIs part 1: Basic setup, checking scopes, creating a test client", "url": "https://joonasw.net/view/azure-ad-authentication-aspnet-core-api-part-1", "published_at": "2018-06-12T19:13:22+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef95eda2c", "title": "Azure AD Authentication with Azure Storage + Managed Service Identity", "url": "https://joonasw.net/view/azure-ad-authentication-with-azure-storage-and-managed-service-identity", "published_at": "2018-05-24T20:01:21+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eef9acba56", "title": "Calling your APIs with Azure AD Managed Service Identity using application permissions", "url": "https://joonasw.net/view/calling-your-apis-with-aad-msi-using-app-permissions", "published_at": "2018-04-24T19:07:10+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eefa0c3180", "title": "Adding an opt-in feature to an Azure AD v1 app in a good way", "url": "https://joonasw.net/view/adding-opt-in-feature-to-azure-ad-app", "published_at": "2018-04-18T08:39:55+00:00" }, { "id": "01a08790-707a-7378-bdb9-94eefa2203e0", "title": "Azure AD v2 and MSAL from a developer's point of view", "url": "https://joonasw.net/view/azure-ad-v2-and-msal-from-dev-pov", "published_at": "2018-04-10T10:11:20+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1d6df54d3", "title": "Using C# await against JS Promises in Blazor", "url": "https://joonasw.net/view/csharp-await-and-js-promises-in-blazor", "published_at": "2018-04-07T12:55:16+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1d6eab9c4", "title": "Shared RESX file for data annotation localization in ASP.NET Core 2.0", "url": "https://joonasw.net/view/aspnet-core-data-annotation-localization-shared-resx-file", "published_at": "2018-03-20T18:40:07+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1d6faae6e", "title": "Azure AD Multi-tenant Apps: API Chains and Cyclic Dependencies", "url": "https://joonasw.net/view/aad-api-chains-and-cyclic-dependencies", "published_at": "2018-03-17T22:07:22+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1d7aeb6cd", "title": "ASP.NET Core + Azure Key Vault + Azure AD MSI = Awesome way to do config", "url": "https://joonasw.net/view/aspnet-core-azure-keyvault-msi", "published_at": "2018-03-06T18:34:07+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1d7fcec3f", "title": "How Device Code Flow works in Azure AD", "url": "https://joonasw.net/view/device-code-flow", "published_at": "2018-02-27T20:50:54+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1d83fe35a", "title": "How to detect a request is an Application Insights ping test", "url": "https://joonasw.net/view/how-to-detect-ai-ping-tests", "published_at": "2018-02-24T17:52:33+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1d8f75daa", "title": "Exploring ActionResult in ASP.NET Core 2.1", "url": "https://joonasw.net/view/aspnet-core-2-1-actionresult-of-t", "published_at": "2018-02-18T10:41:25+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1d96f7e48", "title": "Creating an authentication scheme in ASP.NET Core 2.0", "url": "https://joonasw.net/view/creating-auth-scheme-in-aspnet-core-2", "published_at": "2018-02-02T22:23:56+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1da3af0e1", "title": "Using Azure AD On-Behalf-Of flow in an ASP.NET Core 2.0 API", "url": "https://joonasw.net/view/azure-ad-on-behalf-of-aspnet-core", "published_at": "2018-01-06T19:34:41+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1da547e47", "title": "Using Redis Cache for session data storage in ASP.NET Core", "url": "https://joonasw.net/view/redis-cache-session-store", "published_at": "2017-12-11T18:17:40+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1dab93888", "title": "AADSTS90094: The grant requires admin permission, how to fix it and why it happens", "url": "https://joonasw.net/view/the-grant-requires-admin-permission", "published_at": "2017-12-09T19:36:59+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1dad7465e", "title": "Adding custom claims to a user during authentication with ASP.NET Core 2.0", "url": "https://joonasw.net/view/adding-custom-claims-aspnet-core-2", "published_at": "2017-12-05T18:51:35+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1db5ecb96", "title": "Defining permission scopes and roles offered by an app in Azure AD", "url": "https://joonasw.net/view/defining-permissions-and-roles-in-aad", "published_at": "2017-12-03T20:44:06+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1db61e8ee", "title": "Apply Authorization by default in ASP.NET Core", "url": "https://joonasw.net/view/apply-authz-by-default", "published_at": "2017-11-29T17:54:59+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1dbf6af63", "title": "Custom error pages in ASP.NET MVC Core", "url": "https://joonasw.net/view/custom-error-pages", "published_at": "2017-11-04T10:02:44+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1dce9360d", "title": "Discovering controller actions and Razor Pages in ASP.NET MVC Core", "url": "https://joonasw.net/view/discovering-actions-and-razor-pages", "published_at": "2017-11-03T18:21:45+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1dd2483bc", "title": "Azure AD Managed Service Identity", "url": "https://joonasw.net/view/azure-ad-managed-service-identity", "published_at": "2017-10-13T07:24:16+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1de0e6d3e", "title": "Find out if a URL matches an action in ASP.NET MVC Core", "url": "https://joonasw.net/view/find-out-if-url-matches-action", "published_at": "2017-10-02T18:25:50+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1de8eeb1a", "title": "ASP.NET Core Localization Deep Dive", "url": "https://joonasw.net/view/aspnet-core-localization-deep-dive", "published_at": "2017-09-03T13:37:04+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1df8550f3", "title": "ASP.NET Core 2.0 Configuration Changes", "url": "https://joonasw.net/view/aspnet-core-2-configuration-changes", "published_at": "2017-07-02T11:42:43+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1dfd7c63a", "title": "ASP.NET Core 2.0 Azure AD Authentication", "url": "https://joonasw.net/view/aspnet-core-2-azure-ad-authentication", "published_at": "2017-06-04T20:53:53+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e027ba85", "title": "ASP.NET Core Dependency Injection Deep Dive", "url": "https://joonasw.net/view/aspnet-core-di-deep-dive", "published_at": "2017-02-10T20:30:04+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e0cad9c4", "title": "Content Security Policy (CSP) in ASP.NET Core", "url": "https://joonasw.net/view/csp-in-aspnet-core", "published_at": "2017-02-01T20:37:46+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e18981b7", "title": "HTTP Public Key Pinning (HPKP) in ASP.NET Core", "url": "https://joonasw.net/view/hpkp-in-aspnet-core", "published_at": "2017-01-24T19:41:58+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e19fdb38", "title": "HTTP Strict Transport Security (HSTS) in ASP.NET Core", "url": "https://joonasw.net/view/hsts-in-aspnet-core", "published_at": "2017-01-22T21:03:24+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e1ecfdb0", "title": "Enforcing HTTPS in ASP.NET Core", "url": "https://joonasw.net/view/enforcing-https-in-aspnet-core", "published_at": "2017-01-21T10:26:01+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e2b2e7e6", "title": "Attribute routing cheat sheet for ASP.NET Core", "url": "https://joonasw.net/view/attribute-routing-cheat-sheet-for-aspnet-core", "published_at": "2016-10-22T09:35:46+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e3a144ed", "title": "Building a basic Web API on ASP.NET Core", "url": "https://joonasw.net/view/building-a-basic-web-api-on-asp-net-core", "published_at": "2016-10-18T18:58:31+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e41fe404", "title": "Azure AD B2C with ASP.NET Core 1.0", "url": "https://joonasw.net/view/azure-ad-b2c-with-aspnet-core", "published_at": "2016-08-27T19:18:23+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e428e095", "title": "ASP.NET Core 1.0 Azure AD Authentication", "url": "https://joonasw.net/view/asp-net-core-1-azure-ad-authentication", "published_at": "2016-07-25T12:41:58+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e501ae8c", "title": "ASP.NET Core 1.0 Configuration Deep Dive", "url": "https://joonasw.net/view/asp-net-core-1-configuration-deep-dive", "published_at": "2016-06-29T20:35:59+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e53dd173", "title": "ASP.NET Core 1.0 in Azure Web Apps", "url": "https://joonasw.net/view/asp-net-core-1-in-azure-web-apps", "published_at": "2016-06-27T19:12:14+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e5a03619", "title": "Azure DocumentDB and Web Apps global deployment", "url": "https://joonasw.net/view/azure-documentdb-and-web-apps-global-deployment", "published_at": "2016-06-26T12:43:00+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e5c6c1de", "title": "Nested Azure Traffic Manager profiles", "url": "https://joonasw.net/view/nested-azure-traffic-manager-profiles", "published_at": "2016-06-24T19:31:29+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e6c30697", "title": "ARR Affinity in Azure App Service", "url": "https://joonasw.net/view/arr-affinity-in-azure-app-service", "published_at": "2016-06-24T08:36:20+00:00" }, { "id": "01a08790-707b-7164-9eae-c5e1e6cafbfb", "title": "Welcome", "url": "https://joonasw.net/view/welcome", "published_at": "2016-06-23T10:00:00+00:00" } ] posts Claim your blog
Back to joonasw.net
Blog · corpus.blog/blogs/joonasw.net/posts

joonasw.net

joonasw.net

2025

2024

2022

2021

2020

2019

2018

2017

2016