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.