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
Definitely giving credit to:
Juraj Ondrus
Customer Care Manager
Kentico Support
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