[英]Update aspnet membership password answer
我將在aspnet_Membership中更新安全問題和答案。 通常它由代碼完成:
user.ChangePasswordQuestionAndAnswer(password, question, answer);
但我不知道密碼。 我發現有一個默認的存儲過程。存儲過程是:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[aspnet_Membership_ChangePasswordQuestionAndAnswer]
@ApplicationName nvarchar(256),
@UserName nvarchar(256),
@NewPasswordQuestion nvarchar(256),
@NewPasswordAnswer nvarchar(128)
AS
BEGIN
DECLARE @UserId uniqueidentifier
SELECT @UserId = NULL
SELECT @UserId = u.UserId
FROM dbo.aspnet_Membership m, dbo.aspnet_Users u, dbo.aspnet_Applications a
WHERE LoweredUserName = LOWER(@UserName) AND
u.ApplicationId = a.ApplicationId AND
LOWER(@ApplicationName) = a.LoweredApplicationName AND
u.UserId = m.UserId
IF (@UserId IS NULL)
BEGIN
RETURN(1)
END
UPDATE dbo.aspnet_Membership
SET PasswordQuestion = @NewPasswordQuestion, PasswordAnswer = @NewPasswordAnswer
WHERE UserId=@UserId
RETURN(0)
END
但是我剛才發現答案是明確的。 如何使用存儲過程並對其進行散列?
謝謝。
如果您有權訪問該用戶,則可以在使用Membership方法之前更改其密碼:
public virtual bool ChangePassword(string oldPassword, string newPassword)
你可以試試
string newPassword = user.ResetPassword();
user.ChangePassword(newPassword, "SOMENEWPASSWORD");
然后做
user.ChangePasswordQuestionAndAnswer("SOMENEWPASSWORD", question, answer);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.