You have chosen to sponsor your bid up to a maximum amount of .
Create a simple website that handles OAUTH Authentication. The site does 2 things - handles new user registrations (both OAUTH and local) and has an administrative piece that allows us to modify the OAUTH settings. Styling is NOT important. This is simply a proof-of-concept site.
Step 1: Create a class library project that handles the Business and Data Access logic. All data access should occur through stored procedures via ADO.NET calls. Be smart in choosing your data objects (DataReader vs DataTable, etc.).
Handle authentication against the following 18 providers. Note that we need to be able to handle multiple OAUTH protocols (1.0, 1.0a, 2.0, etc.). Create test API keys (use localhost as the site name). I will modify these later. All OAUTH configuration information should be stored in the DB.
- Dropbox (OAUTH 1.0)
- Evernote (OAUTH 1.0)
- Facebook (OAUTH 2.0 draft 12)
- Flickr (OAUTH 1.0a)
- FourSquare (OAUTH 2.0)
- Google+ (OAUTH 2.0)
- Instagram (OAUTH 2.0)
- LinkedIn (OAUTH 1.0a, 2.0)
- Live Connect (Microsoft) (OAUTH 2.0)
- Netflix (OAUTH 1.0a)
- OpenTable (OAUTH 1.0a)
- PayPal (OAUTH 2.0)
- Reddit (OAUTH 2.0)
- SalesForce (OAUTH 1.0a, 2.0)
- Twitter (OAUTH 1.0a)
- Ubuntu One (OAUTH 1.0)
- Yahoo (OAUTH 1.0a)
- Yelp! (OAUTH 1.0a)
Step 2: Create the website project.
Styling is NOT important. The majority of the work on this step is the new user registration. Once the user authenticates via their chosen authentication method, map the registration fields to the chosen provider's user profile fields as closely as possible (First Name, Last Name, Photo, etc.) and prefill the information (the user should still have the ability to overwrite this data in our membership database). Users should all be assigned to a generic "Member" role.
Once authenticated, the end-user simply sees a "Thank you for logging in " message with two links - "Log out" and "Edit OAUTH". "Edit OAUTH" should enable them to remove the ability to add or delete OAUTH providers.
Utilize the class library project to handle authentication and registration.
Step 3: Create OAUTH administration page on the site.
Create a non-OAUTH user assigned to a "SuperUser" role. When this user logs in, they should have access to a page that can edit the OAUTH Provider functionality (add providers, change the OAUTH protocol a provider is using, change the API key, etc.).
Step 4: Provide the Solution and any necessary deployment notes. Further work on this project will be contingent on the quality of your code (SPELLING IS IMPORTANT - EVEN IN VARIABLE NAMES) and documentation. Part of your documentation should be the links necessary to create new API keys for each provider.
Web Technology: ASP.NET Webforms
Framework version: ASP.NET 4.5
Solution Version: Visual Studio 2012
Database: MS SQL Server 2012
NO THIRD-PARTY CONTROLS. We need all the source-code.
Project 1: This should be a class library with Database Access and Business Layer objects.
Project 2: Web Site