2011-09-05 25 views

Trả lời

16

Nếu bạn muốn thay đổi mật khẩu trực tiếp thông qua cơ sở dữ liệu, bạn cần phải tạo người dùng mới hoặc tìm người dùng hiện tại mà bạn biết mật khẩu. Sau đó, bạn sẽ cần nhận mật khẩu và muối, sau đó cập nhật người dùng được đề cập bằng cùng một mật khẩu và muối.

Lấy của người dùng mật khẩu/muối:

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]' 

Thay đổi mật khẩu:

DECLARE @changeDate DATETIME 
SET @changeDate = GETDATE() 

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

Taken từ here ...

+0

Tôi chỉ có 1 người, đó có nghĩa là tôi phải tạo một cái mới. Làm thế nào để tạo một cái mới thông qua db? Khả thi? –

+0

hóa ra tài khoản của tôi đã bị khóa quá nên tôi phải mở khóa. Cảm ơn! –

+0

Tôi rất vui vì bạn đã nói điều đó. Tôi đã từng gặp vấn đề tương tự. Cách khắc phục đơn giản nhất là: 'update aspnet_Membership set IsLockedOut = 0' nếu bạn muốn chỉnh sửa tất cả các hàng. –

1

Xem trang này: http://www.asp.net/security/tutorials/recovering-and-changing-passwords-cs

Mã gọi một thủ tục lưu trữ:

Giống như với các phương pháp khác trong khuôn khổ Membership, ResetPassword phương pháp đại biểu đến nhà cung cấp cấu hình. SqlMembershipProvider gọi thủ tục được lưu trữ aspnet_Membership_ResetPassword, truyền vào tên người dùng, mật khẩu mới và câu trả lời mật khẩu được cung cấp, trong số các trường khác. Các thủ tục được lưu trữ đảm bảo rằng các câu trả lời mật khẩu phù hợp và sau đó cập nhật mật khẩu của người dùng.

Các vấn đề liên quan