Skip to content

Instantly share code, notes, and snippets.

@redanthrax
Created March 18, 2013 23:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save redanthrax/5046de65a4218e1e5d4a to your computer and use it in GitHub Desktop.
Save redanthrax/5046de65a4218e1e5d4a to your computer and use it in GitHub Desktop.
//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"/>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment