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

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 a

KB 294807 - IIS Server - PHP FastCGI 500 Error 0xfffffffe

Resolved issue today of IIS Server - PHP FastCGI 500 Error 0xfffffffe by deleting "Windows Temp" folder files. We used Cygwin to customize some permissions of "Windows Temp" folder and after few hours the website stopped working. The search online was giving all kinds of different solution except what I was looking for. I was hoping the stackoverflow will have answers but even this post didn't cover the issue I was running into. https://stackoverflow.com/questions/15302080/fastcgi-500-failure Restarting the IIS didn't work, but deleting temp files cleared the issue, but now the problem is how long before the site will go down again? Hope the issue is resolved for ever, if not; I will update this post later.

QlikSense - Custom Form Login Screen

Extension of:  Custom login, logout and error forms for Qlik Sense by RPK https://developer.qlik.com/garden/5ada5a8f0c313f5c539dc7fd QlikSense - Custom Login Screen Install Node on QlikSense Server: URL: https://nodejs.org/en/ Saved at: C:\server-tools\Downloads\Node Installed at: C:\server-tools\Runtime\nodejs\ Keep default options Create Folder: C:\QlikForm Clone git Repository and keep updates private: # Open Shell/Bash/Command Prompt cd /QlikForm # Ref: https://medium.com/@bilalbayasut/github-how-to-make-a-fork-of-public-repository-private-6ee8cacaf9d3 git clone --bare https://github.com/kreta99/QS-Custom-Forms .git cd QS-Custom-Forms.git git push --mirror https://github.com/<name>/QS-Custom-Forms.git cd .. (go to parent folder) # remove other users repo clone rm -rf QS-Custom-Forms.git # clone witinc private repo git clone https://github.com/<name>/QS-Custom-Forms.git Get latest copy of login pages: # Open She