Quantcast
Channel: Kentico CMS for ASP.NET - DevNet - Forums - Version 7.x - API
Viewing all articles
Browse latest Browse all 660

RE:Allow Email and Username Authentication

$
0
0
gary-allixo
Here is a Gist detailing how to allow the username or the email of the user for the login.

https://gist.github.com/redanthrax/5046de65a4218e1e5d4a


//CustomMembershipProvider.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CMS.CMSHelper;
using CMS.GlobalHelper;

public class CustomMembershipProvider : CMS.MembershipProvider.CMSMembershipProvider
{
public override bool ValidateUser(string username, string password)
{
if (ValidationHelper.IsEmail(username))
{
var customUsername = base.GetUserNameByEmail(username);
if (!string.IsNullOrEmpty(customUsername))
username = customUsername;
}


return base.ValidateUser(username, password);
}
}


//CustomUserInfoProvider.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CMS.SiteProvider;
using CMS.GlobalHelper;
using CMS.MembershipProvider;

public class CustomUserInfoProvider : UserInfoProvider
{
protected override UserInfo GetUserInfoInternal(string userName)
{
if (ValidationHelper.IsEmail(userName))
{
var membershipProvider = new CMSMembershipProvider();
var customUserName = membershipProvider.GetUserNameByEmail(userName);
if (!string.IsNullOrEmpty(customUserName))
userName = customUserName;
}

return base.GetUserInfoInternal(userName);
}
}

//CMSAppBase.cs
/// <summary>
/// Application start event handler.
/// </summary>
public static void CMSApplicationStart()
{
#if DEBUG
// Set debug mode
SystemHelper.IsWebProjectDebug = true;
#endif

UserInfoProvider.ProviderObject = new CustomUserInfoProvider();
}

//Web.config
<!--<add name="CMSProvider" type="CMS.MembershipProvider.CMSMembershipProvider" connectionStringName="CMSConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed"/>-->
<add name="CMSProvider" type="CustomMembershipProvider" connectionStringName="CMSConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed"/>


Definitely giving credit to:
Juraj Ondrus
Customer Care Manager
Kentico Support

Viewing all articles
Browse latest Browse all 660

Trending Articles