Creating an External Login Store for ASP.NET Identity for Umbraco
I recently published my first NuGet package. It is the Azure Table Storage External Login Store for ASP.NET Identity for Umbraco. It is a simple package. As the name implies, it is an external login store for ASP.NET Identity for Umbraco. ASP.NET Identity for Umbraco is a package that allows the use of ASP.Net Identity to work with Umbraco members. This also means we can take advantage of OWIN middleware for external authentication using OAuth.
When using ASP.NET Identity for Umbraco to handle external authentication, it needs to keep track of external logins with Umbraco members. ASP.NET Identity for Umbraco includes an external login store that uses SQL CE. Unfortunately it does not work for load balanced environments and I’m a little way of using CE for high traffic sites. It is easy, however, to create your own external login store by implementing the IExternalLoginStore interface.
I decided to use Azure Table Storage as the data store for a couple reasons. First, I read this blog post by Troy Hunt about how it scales well and is very low cost. Second, we were already using Azure Storage for storing and caching media, so it required no additional accounts to be set up. Finally, I must admit, I wanted to learn something new…
While very small (one class), publishing this project involved many firsts for me. It is the first time I used Azure Table Storage. It is the first time I used AppVeyor continuous integration and delivery service. It is also the first time I created and published a NuGet package. As such, I’m sure there are somethings that might be done better. If you see anything, please let me know!