You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@@ -0,0 +1,183 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="MembershipProvider.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.Security {
|
||||
using System.Web;
|
||||
using System.Security.Principal;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Permissions;
|
||||
using System.Globalization;
|
||||
using System.Security.Cryptography;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Configuration.Provider;
|
||||
using System.Text;
|
||||
using System.Web.Configuration;
|
||||
using System.Web.Util;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>[To be supplied.]</para>
|
||||
/// </devdoc>
|
||||
[TypeForwardedFrom("System.Web, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a")]
|
||||
public abstract class MembershipProvider : ProviderBase
|
||||
{
|
||||
//
|
||||
// Property Section
|
||||
//
|
||||
|
||||
|
||||
// Public properties
|
||||
public abstract bool EnablePasswordRetrieval { get; }
|
||||
|
||||
public abstract bool EnablePasswordReset { get; }
|
||||
|
||||
public abstract bool RequiresQuestionAndAnswer { get; }
|
||||
|
||||
public abstract string ApplicationName { get; set; }
|
||||
|
||||
public abstract int MaxInvalidPasswordAttempts { get; }
|
||||
|
||||
public abstract int PasswordAttemptWindow { get; }
|
||||
|
||||
public abstract bool RequiresUniqueEmail { get; }
|
||||
|
||||
public abstract MembershipPasswordFormat PasswordFormat { get; }
|
||||
|
||||
public abstract int MinRequiredPasswordLength { get; }
|
||||
|
||||
public abstract int MinRequiredNonAlphanumericCharacters { get; }
|
||||
|
||||
public abstract string PasswordStrengthRegularExpression { get; }
|
||||
|
||||
//
|
||||
// Method Section
|
||||
//
|
||||
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract MembershipUser CreateUser( string username,
|
||||
string password,
|
||||
string email,
|
||||
string passwordQuestion,
|
||||
string passwordAnswer,
|
||||
bool isApproved,
|
||||
object providerUserKey,
|
||||
out MembershipCreateStatus status );
|
||||
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract string GetPassword(string username, string answer);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract bool ChangePassword(string username, string oldPassword, string newPassword);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract string ResetPassword(string username, string answer);
|
||||
|
||||
public abstract void UpdateUser(MembershipUser user);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract bool ValidateUser(string username, string password);
|
||||
|
||||
|
||||
public abstract bool UnlockUser( string userName );
|
||||
|
||||
public abstract MembershipUser GetUser( object providerUserKey, bool userIsOnline );
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract MembershipUser GetUser(string username, bool userIsOnline);
|
||||
|
||||
// GetUser() can throw 1 type of exception:
|
||||
// 1. ArgumentException is thrown if:
|
||||
// A. Username is null, is empty, contains commas, or is longer than 256 characters
|
||||
internal MembershipUser GetUser(string username, bool userIsOnline, bool throwOnError) {
|
||||
MembershipUser user = null;
|
||||
|
||||
try {
|
||||
user = GetUser(username, userIsOnline);
|
||||
}
|
||||
catch (ArgumentException) {
|
||||
if (throwOnError) throw;
|
||||
}
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
public abstract string GetUserNameByEmail(string email);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract bool DeleteUser(string username, bool deleteAllRelatedData);
|
||||
|
||||
|
||||
public abstract MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords);
|
||||
|
||||
|
||||
public abstract int GetNumberOfUsersOnline();
|
||||
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "username", Justification="This version is required to maintain backwards binary compatibility")]
|
||||
public abstract MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords);
|
||||
|
||||
public abstract MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords);
|
||||
|
||||
protected virtual byte[] EncryptPassword( byte[] password)
|
||||
{
|
||||
return EncryptPassword(password, MembershipPasswordCompatibilityMode.Framework20);
|
||||
}
|
||||
|
||||
protected virtual byte[] EncryptPassword( byte[] password, MembershipPasswordCompatibilityMode legacyPasswordCompatibilityMode)
|
||||
{
|
||||
if (SystemWebProxy.Membership.IsDecryptionKeyAutogenerated)
|
||||
throw new ProviderException(ApplicationServicesStrings.Can_not_use_encrypted_passwords_with_autogen_keys);
|
||||
|
||||
return SystemWebProxy.Membership.EncryptOrDecryptData(true, password, legacyPasswordCompatibilityMode == MembershipPasswordCompatibilityMode.Framework20);
|
||||
}
|
||||
|
||||
protected virtual byte[] DecryptPassword( byte[] encodedPassword )
|
||||
{
|
||||
if (SystemWebProxy.Membership.IsDecryptionKeyAutogenerated)
|
||||
throw new ProviderException(ApplicationServicesStrings.Can_not_use_encrypted_passwords_with_autogen_keys);
|
||||
|
||||
try {
|
||||
return SystemWebProxy.Membership.EncryptOrDecryptData(false, encodedPassword, false);
|
||||
} catch {
|
||||
if (!SystemWebProxy.Membership.UsingCustomEncryption)
|
||||
throw;
|
||||
}
|
||||
return SystemWebProxy.Membership.EncryptOrDecryptData(false, encodedPassword, true);
|
||||
}
|
||||
|
||||
//
|
||||
// Event Section
|
||||
//
|
||||
|
||||
public event MembershipValidatePasswordEventHandler ValidatingPassword
|
||||
{
|
||||
add
|
||||
{
|
||||
_EventHandler += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
_EventHandler -= value;
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnValidatingPassword( ValidatePasswordEventArgs e )
|
||||
{
|
||||
if( _EventHandler != null )
|
||||
{
|
||||
_EventHandler( this, e );
|
||||
}
|
||||
}
|
||||
|
||||
private MembershipValidatePasswordEventHandler _EventHandler;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user