2011-09-05 6 views

答えて

16

データベースから直接パスワードを変更する場合は、新しいユーザーを作成するか、パスワードを知っている既存のユーザーを見つける必要があります。次に、パスワードと塩を取得し、同じパスワードと塩で質問のユーザーを更新する必要があります。

取得し、ユーザーのパスワード/塩:

SELECT 
    au.username, aa.ApplicationName, password, passwordformat, passwordsalt 
FROM 
    aspnet_membership am 
INNER JOIN 
    aspnet_users au ON (au.userid = am.userid) 
INNER JOIN 
    aspnet_applications aa ON (au.applicationId = aa.applicationid) 
WHERE 
    au.UserName = '[user to change password]' 

変更パスワード:hereから撮影

DECLARE @changeDate DATETIME 
SET @changeDate = GETDATE() 

EXEC aspnet_Membership_setPassword 
    'applicationName', 
    'user', 
    'password', 
    'passwordsalt', 
    @changeDate, 
    Passwordformat 

...

+0

私は私がしなければならないことを意味している、唯一の1人のユーザーを持っています新しいものを作成する。 db経由で新しいデータベースを作成するには?可能? –

+0

アカウントがロックアウトされていることが判明したので、ロックを解除するだけでした。ありがとう! –

+0

あなたが言ったことをうれしく思います。私も同じ問題がありました。一番簡単な修正点は、すべての行を編集したい場合は 'update aspnet_Membership set IsLockedOut = 0'です。 –

1

このページを見る:構成プロバイダへのメンバシップフレームワーク内の他の方法、ResetPasswordメソッドデリゲートと同様

http://www.asp.net/security/tutorials/recovering-and-changing-passwords-cs

コードは、ストアドプロシージャを呼び出します。 SqlMembershipProviderはaspnet_Membership_ResetPasswordストアドプロシージャを呼び出し、ユーザーのユーザー名、新しいパスワード、および指定されたパスワードの回答を他のフィールドに渡します。ストアドプロシージャは、パスワードの回答が一致したことを確認してから、ユーザーのパスワードを更新します。

関連する問題