Removes all references of System.Web.Security from core project

This commit is contained in:
Shannon
2019-11-25 23:37:30 +11:00
parent 3e518a0921
commit 76b413e527
17 changed files with 97 additions and 1356 deletions

View File

@@ -3,7 +3,6 @@ using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Web;
using Umbraco.Core.Composing;
namespace Umbraco.Core.Cache

View File

@@ -4,8 +4,8 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
namespace Umbraco.Core
{
@@ -251,7 +251,7 @@ namespace Umbraco.Core
var builder = new StringBuilder();
foreach (var i in d)
{
builder.Append(String.Format("{0}={1}&", HttpUtility.UrlEncode(i.Key), i.Value == null ? string.Empty : HttpUtility.UrlEncode(i.Value.ToString())));
builder.Append(String.Format("{0}={1}&", WebUtility.UrlEncode(i.Key), i.Value == null ? string.Empty : WebUtility.UrlEncode(i.Value.ToString())));
}
return builder.ToString().TrimEnd('&');
}

View File

@@ -8,21 +8,23 @@ namespace Umbraco.Core.Models.Membership
/// </summary>
public interface IMembershipUser : IEntity
{
object ProviderUserKey { get; set; }
object ProviderUserKey { get; set; } // fixme: This will be obsolete when we remove membership providers
string Username { get; set; }
string Email { get; set; }
/// <summary>
/// Gets or sets the raw password value
/// </summary>
string RawPasswordValue { get; set; }
string RawPasswordValue { get; set; } // fixme: This will be obsolete when we remove membership providers
string PasswordQuestion { get; set; }
string PasswordQuestion { get; set; } // fixme: This will be obsolete when we remove membership providers
/// <summary>
/// Gets or sets the raw password answer value
/// </summary>
string RawPasswordAnswerValue { get; set; }
string RawPasswordAnswerValue { get; set; } // fixme: This will be obsolete when we remove membership providers
string Comments { get; set; }
bool IsApproved { get; set; }

View File

@@ -1,29 +0,0 @@
using System;
using System.Web.Security;
using Umbraco.Core.Composing;
using Umbraco.Core.Security;
using Umbraco.Core.Services;
namespace Umbraco.Core.Models.Membership
{
internal static class MembershipUserExtensions
{
internal static UmbracoMembershipMember AsConcreteMembershipUser(this IMembershipUser member, string providerName, bool providerKeyAsGuid = false)
{
var membershipMember = new UmbracoMembershipMember(member, providerName, providerKeyAsGuid);
return membershipMember;
}
internal static IMembershipUser AsIMember(this UmbracoMembershipMember membershipMember)
{
var member = membershipMember;
if (member != null)
{
return member.Member;
}
throw new NotImplementedException();
}
}
}

View File

@@ -1,50 +0,0 @@
using System;
using System.Web.Security;
namespace Umbraco.Core.Models.Membership
{
internal class UmbracoMembershipUser<T> : MembershipUser where T : IMembershipUser
{
private T _user;
#region Constructors
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoMembershipUser{T}"/> class.
/// </summary>
public UmbracoMembershipUser(T user)
{
_user = user;
}
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoMembershipUser{T}"/> class.
/// </summary>
/// <param name="providerName">Name of the provider.</param>
/// <param name="name">The name.</param>
/// <param name="providerUserKey">The provider user key.</param>
/// <param name="email">The email.</param>
/// <param name="passwordQuestion">The password question.</param>
/// <param name="comment">The comment.</param>
/// <param name="isApproved">if set to <c>true</c> [is approved].</param>
/// <param name="isLockedOut">if set to <c>true</c> [is locked out].</param>
/// <param name="creationDate">The creation date.</param>
/// <param name="lastLoginDate">The last login date.</param>
/// <param name="lastActivityDate">The last activity date.</param>
/// <param name="lastPasswordChangedDate">The last password changed date.</param>
/// <param name="lastLockoutDate">The last lockout date.</param>
/// <param name="fullName">The full name.</param>
/// <param name="language">The language.</param>
/// <param name="user"></param>
public UmbracoMembershipUser(string providerName, string name, object providerUserKey, string email,
string passwordQuestion, string comment, bool isApproved, bool isLockedOut,
DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChangedDate,
DateTime lastLockoutDate, string fullName, string language, T user)
: base(providerName, name, providerUserKey, email, passwordQuestion, comment, isApproved, isLockedOut,
creationDate, lastLoginDate, lastActivityDate, lastPasswordChangedDate, lastLockoutDate)
{
_user = user;
}
#endregion
}
}

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Security;
using Microsoft.AspNet.Identity;
using Umbraco.Core.Configuration;
using Umbraco.Core.Exceptions;

View File

@@ -1,15 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Security.Claims;
using System.Security.Principal;
using System.Web;
using System.Web.Security;
using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security;
using Newtonsoft.Json;
using Umbraco.Core.Configuration;
namespace Umbraco.Core.Security
{

File diff suppressed because it is too large Load Diff

View File

@@ -371,9 +371,6 @@
<Compile Include="Models\MediaExtensions.cs" />
<Compile Include="Models\MediaType.cs" />
<Compile Include="Models\Member.cs" />
<Compile Include="Models\Membership\MembershipUserExtensions.cs" />
<Compile Include="Models\Membership\UmbracoMembershipMember.cs" />
<Compile Include="Models\Membership\UmbracoMembershipUser.cs" />
<Compile Include="Models\Membership\User.cs" />
<Compile Include="Models\MemberType.cs" />
<Compile Include="Models\PublishedContent\PublishedContentTypeFactory.cs" />
@@ -745,11 +742,9 @@
<Compile Include="Security\IUserAwarePasswordHasher.cs" />
<Compile Include="Security\IUserSessionStore.cs" />
<Compile Include="Security\MachineKeyGenerator.cs" />
<Compile Include="Security\MembershipProviderBase.cs" />
<Compile Include="Security\ConfiguredPasswordValidator.cs" />
<Compile Include="Security\UmbracoBackOfficeIdentity.cs" />
<Compile Include="Security\UmbracoEmailMessage.cs" />
<Compile Include="Security\UmbracoMembershipProviderBase.cs" />
<Compile Include="Security\UserAwarePasswordHasher.cs" />
<Compile Include="Serialization\CaseInsensitiveDictionaryConverter.cs" />
<Compile Include="Serialization\ForceInt32Converter.cs" />

View File

@@ -7,6 +7,7 @@ using Moq;
using NUnit.Framework;
using Umbraco.Core.Security;
using Umbraco.Tests.Testing;
using Umbraco.Web.Security;
namespace Umbraco.Tests.Membership
{

View File

@@ -8,6 +8,7 @@ using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Core.Strings;
using Umbraco.Tests.Testing;
using Umbraco.Web;
namespace Umbraco.Tests.Strings
{

View File

@@ -1,8 +1,8 @@
using System;
using System.Web.Security;
using Umbraco.Core.Configuration;
using Umbraco.Core.Models.Membership;
namespace Umbraco.Core.Models.Membership
namespace Umbraco.Web.Models.Membership
{
internal class UmbracoMembershipMember : MembershipUser

View File

@@ -5,13 +5,13 @@ using System.Configuration.Provider;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Configuration;
using System.Web.Hosting;
using System.Web.Security;
using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Core.Logging;
namespace Umbraco.Core.Security
namespace Umbraco.Web.Security
{
/// <summary>
/// A base membership provider class offering much of the underlying functionality for initializing and password encryption/hashing.

View File

@@ -6,8 +6,10 @@ using System.Web.Hosting;
using System.Web.Security;
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Security;
using Umbraco.Core.Services;
using Umbraco.Web.Models.Membership;
using Umbraco.Web.Security.Providers;
namespace Umbraco.Web.Security
@@ -15,6 +17,12 @@ namespace Umbraco.Web.Security
public static class MembershipProviderExtensions
{
internal static UmbracoMembershipMember AsConcreteMembershipUser(this IMembershipUser member, string providerName, bool providerKeyAsGuid = false)
{
var membershipMember = new UmbracoMembershipMember(member, providerName, providerKeyAsGuid);
return membershipMember;
}
/// <summary>
/// Extension method to check if a password can be reset based on a given provider and the current request (logged in user)
/// </summary>

View File

@@ -1,7 +1,8 @@
using System.Text;
using System.Web.Security;
using Umbraco.Core.Security;
namespace Umbraco.Core.Security
namespace Umbraco.Web.Security
{
/// <summary>
/// A base membership provider class for umbraco providers

View File

@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Security;
namespace Umbraco.Web
{
public static class StringExtensions
{
/// <summary>
/// Encrypt the string using the MachineKey in medium trust
/// </summary>
/// <param name="value">The string value to be encrypted.</param>
/// <returns>The encrypted string.</returns>
public static string EncryptWithMachineKey(this string value)
{
if (value == null)
return null;
string valueToEncrypt = value;
List<string> parts = new List<string>();
const int EncrpytBlockSize = 500;
while (valueToEncrypt.Length > EncrpytBlockSize)
{
parts.Add(valueToEncrypt.Substring(0, EncrpytBlockSize));
valueToEncrypt = valueToEncrypt.Remove(0, EncrpytBlockSize);
}
if (valueToEncrypt.Length > 0)
{
parts.Add(valueToEncrypt);
}
StringBuilder encrpytedValue = new StringBuilder();
foreach (var part in parts)
{
var encrpytedBlock = FormsAuthentication.Encrypt(new FormsAuthenticationTicket(0, string.Empty, DateTime.Now, DateTime.MaxValue, false, part));
encrpytedValue.AppendLine(encrpytedBlock);
}
return encrpytedValue.ToString().TrimEnd();
}
/// <summary>
/// Decrypt the encrypted string using the Machine key in medium trust
/// </summary>
/// <param name="value">The string value to be decrypted</param>
/// <returns>The decrypted string.</returns>
public static string DecryptWithMachineKey(this string value)
{
if (value == null)
return null;
string[] parts = value.Split('\n');
StringBuilder decryptedValue = new StringBuilder();
foreach (var part in parts)
{
decryptedValue.Append(FormsAuthentication.Decrypt(part.TrimEnd()).UserData);
}
return decryptedValue.ToString();
}
}
}

View File

@@ -233,6 +233,7 @@
<Compile Include="Models\ContentEditing\UrlAndAnchors.cs" />
<Compile Include="Models\Mapping\CommonMapper.cs" />
<Compile Include="Models\Mapping\MapperContextExtensions.cs" />
<Compile Include="Models\Membership\UmbracoMembershipMember.cs" />
<Compile Include="Models\PublishedContent\HybridVariationContextAccessor.cs" />
<Compile Include="Models\TemplateQuery\QueryConditionExtensions.cs" />
<Compile Include="Mvc\HttpUmbracoFormRouteStringException.cs" />
@@ -257,12 +258,15 @@
<Compile Include="Search\ExamineFinalComponent.cs" />
<Compile Include="Search\ExamineFinalComposer.cs" />
<Compile Include="Search\ExamineUserComponent.cs" />
<Compile Include="Security\MembershipProviderBase.cs" />
<Compile Include="Security\MembershipProviderExtensions.cs" />
<Compile Include="Security\UmbracoMembershipProviderBase.cs" />
<Compile Include="Services\DashboardService.cs" />
<Compile Include="Services\IDashboardService.cs" />
<Compile Include="Models\Link.cs" />
<Compile Include="Models\LinkType.cs" />
<Compile Include="Models\TemplateQuery\OperatorFactory.cs" />
<Compile Include="StringExtensions.cs" />
<Compile Include="UmbracoContextFactory.cs" />
<Compile Include="UmbracoContextReference.cs" />
<Compile Include="Mvc\UmbracoVirtualNodeByUdiRouteHandler.cs" />