Skip to main content

Razor Application Authentication change from email to username

ASP.Net Web Pages - Razor (v2) makes it easy enough to switch from email based authentication to username based login.

I have added some of the major as well as minimum updates that are needed to update the registration process as well as the login process, to enable the application to utilize the username rather than the email for authentication.

Database Update: UserProfile:

Add a new database table column called “UserName” under the table UserProfile of the razor (v2) application.
---------------------------------------

Page Update: ~/_AppStart.cshtml:

WebSecurity.InitializeDatabaseConnection("myConnectionString", "UserProfile", "UserId", "UserName", autoCreateTables: true);
---------------------------------------

Page Update: ~/Account/Register.cshtml:

Add variable under initialize variables:
var userName = "";

Add setup validation:
Validation.RequireField("userName", "You must specify user name.");

Add in IsPost line:
userName = Request.Form["userName"];

Update line token:
var token = WebSecurity.CreateAccount(userName, password, requireEmailConfirmation);

---------------------------------------

Page Update: ~/Account/Login.cshtml:

Follow similar steps of Register page, add variable under initialize variables, add setup validation, capture form request under Validation.IsValid() method and then the following two if logic update from email to username.

First:
if (WebSecurity.UserExists(username) && WebSecurity.GetPasswordFailuresSinceLastSuccess(username) > 4 && WebSecurity.GetLastPasswordFailureDate(username).AddSeconds(60) > DateTime.UtcNow)

Second:
if (WebSecurity.Login(username, password, rememberMe))
---------------------------------------

These steps should allow you to change from email to username. Please note these are just partial details, I hope you can gain the insights on application wide updates needed to implement the complete transition from email to username login.

Additionally: If you like to run a classic asp application, in the same web folder, than make sure to set the folder in the IIS, as virtual folder, that way you can run this .Net 4.0 application, in the same domain of the classic asp application, which may be running on the application pool that utilizes the .Net 2.0 framework.

Note:
These steps are not to be applied on production. Also, previously created users may not be able to login, after the switch, as the password salt or hash may have used the email or vice versa username as part of an encryption key.

Comments

Popular posts from this blog

Working hours in six months to a year

I usually try to look for how many hours I have worked on a given project and what hours that I  spend on learning or network management tasks.

Below I have added some hours calculation, after finding the breakdown by months from Berkeley website.


Credit: http://controller.berkeley.edu/payroll/payroll-system-pps/pps-training-materials/number-working-hours-month

2017Working hours six months (Jan 1st - Jun 30th): 
130 days x 8 hours =  1040 hours


Working hours six months (Jul 1st - Dec 31th): 
130 days x 8 hours =  1040 hours

Working hours for the year:
1040 hours + 1040 hours = 2080 hours
MonthWorking Days in the monthMonthly Working Hrs1/2 of working hrsMidpoint of working days in the monthDates of HolidaysJanuary22176888 a.m. 1/172,16February20160808 a.m. 2/1520March2318492Noon 3/1631April20160808 a.m. 4/17May2318492Noon 5/1629June22176888 a.m. 6/16July2116884Noon 7/174August2318492Noon 8/16September2116884Noon 9/154October22176888 a.m. 10/17November22176888 a.m. 11/1610,23,24December21168…

Completed UiPath - RPA Developer Advance Training

After a month of training, with late nights and weekends I have completed the UiPath RPA Developer Advance Training.

The Level 1 Foundation Training pretty much covered all the basics of Desktop studio and workflows, only draw back was I started with the default foundation course which was for 2016, and all document reference links where pointing to 2016 version. I didn't understand it during the foundation training and kept switching to 2018 version document/page.

Only after completing the Foundation course that I realized, I was suppose to have started with the 2018 version of Level 1 Foundation Training, but as it was optional I didn't have to retake the 2018 version, the 2016 was good enough for moving to level 2.

The Level 2 Orchestrator 2018.3 Training as good. It gave good understanding of Queue's, Jobs, and schedules and I was able to complete the level two much faster then the level 1.

The Level 3 UiPath Advanced Training was bit tough as it involved the assignme…