2. AGENDA
The History
ASP.NET Identity
OWIN
Katana
Live Demo 1 – Hello ASP.NET Identity
Live Demo 2 – Let’s consume the API
Live Demo 3 – Write your own OWIN middleware
Lucky Draw!
5. ASP.NET MEMBERSHIP
Design to solve common membership requirements in 2005
Form Authentication + SQL Server database
Limitations
Database schema was designed for SQL Server – CANNOT CHANGE
Profile Provider API is too complicated
Provider system allow to change backing data store, but only Relational Database
Form Authentication won’t work nicely with OWIN
6. ASP.NET SIMPLE MEMBERSHIP
Developed as a membership system for ASP.NET Web Pages
Shipped with Web Matrix and Visual Studio 2010 SP1
Limitations
Hard to persist membership system data in a non-relational store
No OWIN
Doesn’t work well with existing ASP.NET Membership providers. Not extensible.
7. ASP.NET UNIVERSAL PROVIDERS
Developed to make it possible to persist membership information in Windows
Azure SQL Database (work with SQL Server Compact too)
Built on Entity Framework Code First, which means it can be used to persist data
in any store supported by EF.
Database schema cleaned up a lot
Still built on ASP.NET Membership infrastructure hence same limitations
Still using Form Authentication for log-in and log-out
9. ASP.NET IDENTITY
One ASP.NET Identity System
Ease of plugging in profile data about the user
Persistence Control
Unit Testability
Role Provider
10. ASP.NET IDENTITY
Claims Based
Social Login Providers
Windows Azure Active Directory
OWIN Integration
NuGet Package
13. OWIN
Open Web Interface for .NET
Defines a standard interface between .NET web servers and web applications
Goal
To decouple server and application
Open source ecosystem of .NET web development tools
Official website
http://owin.org
Source code
http://github.com/owin/owin
Specification (OWIN v1.0.0)
http://owin.org/spec/owin-1.0.0.html
14. OWIN – WTH?
OWIN is NOT technology
OWIN is a simple specification that describes how components in a HTTP pipeline
should communicate
What is in the communication between components is specific to each
component
OWIN is a community-owned specification, not an implementation
Inspired by the benefits achieved by Rack () in the Ruby community
New components could be more easily developed and consumed
Applications could be more easily ported between hosts and potentially entire
platforms/operating systems
18. KATANA PROJECT
Samurai Sword
OWIN implementations for Microsoft servers and frameworks
Set of Components for building and hosting OWIN-based web applications
Set of open-source OWIN components developed by Microsoft
Office Website
https://katanaproject.codeplex.com