Authenticating an Elixir app against an ASP.NET web site

By Eric Lathrop on

At work we have an ASP.NET web site that uses the built-in ASP.NET SqlMembershipProvider. My task was to enable one of our Elixir apps to authenticate users using their credentials used in the ASP.NET app.

I decided to have Elixir reach into the Microsoft SQL Server database to retrieve the user records, then reimplement the hash algorithm that SqlMembershipProvider uses. I used the Tds library to communicate with SQL Server.

I ended up building and releasing a library called SqlMembershipProvider which models the various aspnet_* tables as Elixir structs, implements the password hashing algorithm, as well as parses the profile fields. I learned a decent amount about writing ex_doc documentation and typespecs. I'm glad I was finally able to contribute some code back to the Elixir community.