7
votes

Comment déverrouiller un compte d'utilisateur ASPnetdb après le dépôt de mot de passe de mauvais mot de passe?

Je suis nouveau et en utilisant le contrôle de connexion avec la base de données d'utilisateurs générée par ASPnetdB Visual Studio

i Définir un nombre maximal de mots de passe de mot de passe maximum de 5 dans web.config et testé sur le point qu'un compte a été verrouillé. Je suis toutefois incapable de comprendre comment déverrouiller le compte maintenant.

Ce problème est sur mon site hébergé à distance, ce n'est donc pas quelque chose que je peux faire avec l'outil de configuration Visual Studio ASP.NET

Certains C # Code, je pourrais exécuter dans la page 3.CS, qui permettrait de saisir le nom d'utilisateur et de le faire déverrouiller serait super. Ensuite, je pourrais faire un formulaire pour le faire plus tard quand j'ai besoin de facilement.

Merci d'avance pour toute aide.


0 commentaires

5 Réponses :


1
votes

Avez-vous essayé de changer le web.config pour prolonger le temps de verrouillage des "tentatives plus" ou quelque chose comme ça? Peut-être que cela vous permettra de la sorte.

Je ne connais aucun code CSharp pour vous, mais un outil que j'utilise est le Contrôle de la gestion des membres de la qualité où je peux gérer l'adhésion (y compris le statut de verrouillage) via un formulaire Web.

Bien que cela ne vous aide pas maintenant, cela devrait vous aider à l'avenir. En outre, une fois que vous pouvez vous connecter (après l'expiration de votre lock-out) à nouveau, je vous suggérerais de supprimer les informations de verrouillage du web.config jusqu'à ce que vous soyez prêt à aller vivre. Des tests approfondis de votre application sont tenus de vous mettre à nouveau verrouillé à nouveau.


0 commentaires

0
votes

Ce tutoriel pourrait vous aider, vous devrez peut-être passer à travers la série rapidement:

Déverrouillage et approuvant les comptes d'utilisateurs < / strong>


0 commentaires

9
votes

manuellement, dans la base de données, allez à la table ASPNET_Membership, définissez échouéLoginpassWordReTempount (quelque chose de même nommé) à zéro et définissez islockedout à 0 (faux).

Nous avons créé un écran de sécurité personnalisé pour les gérer dans plusieurs de mes applications, ou vous pouvez utiliser un composant comme mentionné dans les autres messages.

hth.


0 commentaires

1
votes

J'ai un code vraiment vieux (laid) d'une application que j'ai construite quelques années de retour. C'est à peu près un piratage d'un contrôle de grille de grille qui utilise l'aspnet_membership_unlockuser stocké proc comme la commande DELETE avec la clé définie comme nom d'utilisateur de l'utilisateur verrouillé dans le Gridrow. Je n'ai même pas utilisé c #. Voici ce que j'ai:

ALTER PROCEDURE [dbo].[aspnet_Membership_UnlockUser]
    --@ApplicationName                         nvarchar(256), --replaced with '/'
    @UserName                                nvarchar(256)
AS
BEGIN
    DECLARE @UserId uniqueidentifier
    SELECT  @UserId = NULL
    SELECT  @UserId = u.UserId
    FROM    dbo.aspnet_Users u, dbo.aspnet_Applications a, dbo.aspnet_Membership m
    WHERE   LoweredUserName = LOWER(@UserName) AND
            u.ApplicationId = a.ApplicationId  AND
            LOWER('/') = a.LoweredApplicationName AND
            u.UserId = m.UserId

    IF ( @UserId IS NULL )
        RETURN 1

    UPDATE dbo.aspnet_Membership
    SET IsLockedOut = 0,
        FailedPasswordAttemptCount = 0,
        FailedPasswordAttemptWindowStart = CONVERT( datetime, '17540101', 112 ),
        FailedPasswordAnswerAttemptCount = 0,
        FailedPasswordAnswerAttemptWindowStart = CONVERT( datetime, '17540101', 112 ),
        LastLockoutDate = CONVERT( datetime, '17540101', 112 )
    WHERE @UserId = UserId

    RETURN 0
END


1 commentaires

Je ne veux pas faire voter cette réponse, mais la réponse de Brian ressemble à la meilleure réponse.



12
votes
  MembershipUser usr = Membership.GetUser(userName);
  usr.UnlockUser();

0 commentaires