.NET - 2018

Token based authentication and Identity framework in ASP.NET Core - Part 2

Setting up token based authentication in ASP.NET Core application on top of Identity Framework
In article Token based authentication and Identity framework in ASP.NET Core - Part 1 I described how to setup identity library for storing user accounts. Now we are going to setup ASP.NET Core Web API project to issue the token for authenticated users so they can access protected resources. Identity Web API instance will be separated from from the resource Web API, so we'll have eventually two and possibly in future more resource services which will all use single identity server fr authentication and issuing access tokens. ...read more

Sending email in ASP.NET Core using SmtpClient and dependency injection

Using dependency injection to send email in ASP.NET Core
Starting with .NET Core 2.0, Microsoft introduced SmtpClient, identical implementation as in .NET 4. This made sending emails from the application a lot easier as there is functionality out of the box and you do not have to rely on the 3rd party nuget packages. If you inspect this class, you will see that the only interface it inherits is IDisposable, so it does not give you many options for injection unless you wrap it with your own implementation and interface, but since we are not going to go that deep into the dependency injection, we'll just focus on creating a client instance using .NET Core dependency injection framework. ...read more

Advanced versioning in ASP.NET Core Web API

Different approaches in ASP.NET Core Web API versioning
Some time ago I wrote an article about ASP.NET Core Web API versioning which describes route based Web API endpoint versioning. I love route versioning and to me it is the best way of versioning because it is pretty straight, but there are situations where this kind of versioning is not suitable. On nuget.org you can find Microsoft.AspNetCore.Mvc.Versioning package which gives you more options on how you can version your Web API endpoints...read more

Use different configuration based on environment value in ASP.NET Core

Different configuration per environment in ASP.NET Core
In .NET framework, having separate configuration is possible by having different web.config or app.config file transformations since in .NET framework configuration is stored in XML format. You can check more on this in article Separate configuration files per build config in Visual Studio IDE...read more

How to setup ASP.NET Core run on Debian Linux with Nginx

Hosting and running ASP.NET Core project on linux
In two previous articles (How to setup .NET Core 2 on Debian or Ubuntu Linux distro the easy way & Setting up .NET Core service/daemon on Debian Linux OS) I explained how to setup and run .NET Core based applications and how to run them as a Linux daemon. In this article we are going to take it one step further...read more

Setting up .NET Core service/daemon on Debian Linux OS

How to run .NET Core application as daemon on Linux
I found a lot of articles out here on this subject, but non of them actually made the daemon work from the first time. There was always some catch I had to chase and found in some other article posted online. In this article I will try to cover as much as possible how to setup .NET Core daemon working on a clean Debian 9 Linux machine...read more

How to setup .NET Core 2 on Debian or Ubuntu Linux distro the easy way

Installing .NET Core on Linux the short way
Many of you who had chance to work docker and .NET Cote on Linux will agree that easiest way of running .NET Core on Linux is to pull microsoft/aspnetcore:2.0 image from docker repository and just setup your app with .Dockerfile. You will be saved of the hassle of setting up the environment and .NET Core on on the Linux machine. But what if that is not an option? What if you really need for some reason to run your application on the specific host and not in the container? ...read more

Google Invisible reCAPTCHA and reCAPTCHA v2 in ASP.NET Core

ASP.NET Core implementation of Google reCAPTCHA and reCAPTCHA v2
Recently I wrote and article about setting up and using Google reCAPTCHA v2, better known as "I'm not a robot" validation. If you were setting up reCAPTCHA v2, you probably noticed that there is an option for "Invisible reCAPTCHA" option. This type of validation, instead of asking user to interact with the UI in order to be identified as a human, does not require any direct interaction which can help building better user experience for your visitors...read more

Redis health check in ASP.NET Core WebApi

Checking availability of distributed Redis cache instances in ASP.NET Core WebApi
Even before popularity of micro service approach, for even monolithic applications you needed to have health-checks (Google Compute Engine) or health-probes (Microsoft Azure) for load balancing. Basically in load balancing scenario, these endpoints are used to tell load balancer whether instance can handle requests or not. Since handling of requests may consider several components, these endpoints either return 200 OK HTTP response or any other response like 500 Internal Server Error with optional payload message describing the issue and each component status. ...read more

Using strongly typed objects with IDistributedCache instead of byte arrays

An easy way to cache any object to distributed cache store using .NET Core
Saving an object to distributed cache store in .NET Core requires your object to be serialized to byte array in order for SetAsync method on Microsoft.Extensions.Caching.Distributed.IDistributedCache interface implemented instance to save your object to the injected cache store instance. This means that what ever instance you have, you need to serialize it first to byte array. Similar, just reversed process applies for the process of reading an object from the distributed cache store. ...read more


read more


read more

Umbraco CMS

read more


read more