Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts: src/Umbraco.Core/Models/Member.cs src/Umbraco.Core/Models/Membership/MembershipUserExtensions.cs src/Umbraco.Core/Persistence/Factories/MemberFactory.cs src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs src/Umbraco.Core/Persistence/Mappers/MemberMapper.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Services/IMembershipUserService.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Tests/Services/ContentServiceTests.cs src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs src/Umbraco.Web.UI/install/steps/DefaultUser.ascx.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Routing/PublishedContentRequestEngine.cs src/Umbraco.Web/Security/WebSecurity.cs src/Umbraco.Web/umbraco.presentation/LegacyClasses.cs src/Umbraco.Web/umbraco.presentation/install/steps/LegacyClasses.cs src/Umbraco.Web/umbraco.presentation/umbraco/channels/UmbracoMetaWeblogAPI.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/member.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/memberTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/create/userTasks.cs src/Umbraco.Web/umbraco.presentation/umbraco/dashboard/ChangePassword.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Principal;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using System.Web.Hosting;
|
||||
using System.Web.Security;
|
||||
using Umbraco.Core.Security;
|
||||
|
||||
@@ -10,6 +14,79 @@ namespace Umbraco.Core.Security
|
||||
{
|
||||
internal static class MembershipProviderExtensions
|
||||
{
|
||||
public static MembershipUserCollection FindUsersByName(this MembershipProvider provider, string usernameToMatch)
|
||||
{
|
||||
int totalRecords = 0;
|
||||
return provider.FindUsersByName(usernameToMatch, 0, int.MaxValue, out totalRecords);
|
||||
}
|
||||
|
||||
public static MembershipUserCollection FindUsersByEmail(this MembershipProvider provider, string emailToMatch)
|
||||
{
|
||||
int totalRecords = 0;
|
||||
return provider.FindUsersByEmail(emailToMatch, 0, int.MaxValue, out totalRecords);
|
||||
}
|
||||
|
||||
public static MembershipUser CreateUser(this MembershipProvider provider, string username, string password, string email)
|
||||
{
|
||||
MembershipCreateStatus status;
|
||||
var user = provider.CreateUser(username, password, email, null, null, true, null, out status);
|
||||
if (user == null)
|
||||
throw new MembershipCreateUserException(status);
|
||||
return user;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to get the Umbraco Members membership provider based on it's alias
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static MembershipProvider GetMembersMembershipProvider()
|
||||
{
|
||||
if (Membership.Providers[Constants.Conventions.Member.UmbracoMemberProviderName] == null)
|
||||
{
|
||||
throw new InvalidOperationException("No membership provider found with name " + Constants.Conventions.Member.UmbracoMemberProviderName);
|
||||
}
|
||||
return Membership.Providers[Constants.Conventions.Member.UmbracoMemberProviderName];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to get the Umbraco Users membership provider based on it's alias
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static MembershipProvider GetUsersMembershipProvider()
|
||||
{
|
||||
if (Membership.Providers[Constants.Conventions.User.UmbracoUsersProviderName] == null)
|
||||
{
|
||||
throw new InvalidOperationException("No membership provider found with name " + Constants.Conventions.User.UmbracoUsersProviderName);
|
||||
}
|
||||
return Membership.Providers[Constants.Conventions.User.UmbracoUsersProviderName];
|
||||
}
|
||||
|
||||
public static MembershipUser GetCurrentUser(this MembershipProvider membershipProvider)
|
||||
{
|
||||
var username = membershipProvider.GetCurrentUserName();
|
||||
return membershipProvider.GetUser(username, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Just returns the current user's login name (just a wrapper).
|
||||
/// </summary>
|
||||
/// <param name="membershipProvider"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetCurrentUserName(this MembershipProvider membershipProvider)
|
||||
{
|
||||
if (HostingEnvironment.IsHosted)
|
||||
{
|
||||
HttpContext current = HttpContext.Current;
|
||||
if (current != null)
|
||||
return current.User.Identity.Name;
|
||||
}
|
||||
IPrincipal currentPrincipal = Thread.CurrentPrincipal;
|
||||
if (currentPrincipal == null || currentPrincipal.Identity == null)
|
||||
return string.Empty;
|
||||
else
|
||||
return currentPrincipal.Identity.Name;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if the provider specified is a built-in Umbraco users provider
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user