Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何检索成员资格';密码应答_Asp.net_Sql Server_Security - Fatal编程技术网

Asp.net 如何检索成员资格';密码应答

Asp.net 如何检索成员资格';密码应答,asp.net,sql-server,security,Asp.net,Sql Server,Security,它被装在桌子里。我不想重置密码。 我有一个解决办法 但我不确定 基本密码 因为我有一个错误,找不到它 再次更新: updated my code: public class FalseMembershipProvider: MembershipProvider { public string GetPasswordAnswer(Guid providerUserKey) { Microsoft.Practices.EnterpriseLibrary.Data.D

它被装在桌子里。我不想重置密码。 我有一个解决办法

但我不确定

基本密码

因为我有一个错误,找不到它

再次更新:

updated my code:

public class FalseMembershipProvider: MembershipProvider
{
    public string GetPasswordAnswer(Guid providerUserKey)
    {
        Microsoft.Practices.EnterpriseLibrary.Data.Database db = Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase();
        using (System.Data.Common.DbCommand cmd = db.GetSqlStringCommand("SELECT PasswordAnswer FROM aspnet_Membership WHERE UserID=@UserID"))
        {
            db.AddInParameter(cmd, "@UserId", DbType.Guid, providerUserKey);
            object answer = db.ExecuteScalar(cmd); if (answer != null)
                return ProviderDecryptor(answer.ToString());
            else
                return null;
        }
        db = null;
    }
    internal string ProviderDecryptor(string encryptedText)
    {
        string decrypted = null;
        if (!string.IsNullOrEmpty(encryptedText))
        {
            byte[] encodedbytes = Convert.FromBase64String(encryptedText);
            byte[] decryptedbytes = base.DecryptPassword(encodedbytes);
            if (decryptedbytes != null)
                decrypted = System.Text.Encoding.Unicode.GetString(decryptedbytes, 16, decryptedbytes.Length - 16);
        }
        return decrypted;
    }
}

该类是从
成员资格提供程序继承的。正在调用的方法为。但是,正如您在MSDN页面上看到的,它是一种受保护的方法。通过从
MembershipProvider
导入,这个新类可以使用
base.DecryptPassword
,它实质上是说“调用MembershipProvider的DecryptPassword方法。即使该方法受到保护,我也可以调用它,因为我从MembershipProvider类继承了权限”

您正在编写的类需要从
MembershipProvider
继承,正如作者在示例中所做的那样:

public class FalseMembershipProvider : MembershipProvider

如何添加它,因为我已经内在的东西?示例:public partial class EditInfo:System.Web.UI.page您只需创建一个新类并从页面调用它即可。它不必添加到您当前的类中。有一大堆错误。例如“FalseMembershipProvider”不实现继承的抽象成员System.Web.Security.MembershipProvider.FindUserByEmail(string,int,int,out int)'等等。您必须实现其他必需的方法。右键单击MembershipProvider,然后单击
实现抽象类
。您可以填写所需的方法。此处有详细信息。为什么要实现自定义提供程序来恢复密码?如果您只想重新获取密码,您不能使用PasswordRecove吗ry控件?不,我没有恢复密码。我的意思是找到passwordanswer。例如,问题:你的faviour颜色是什么?回答:红色。答案在表中散列。passwordanswer不是密码本身。即使我右键单击“实现抽象类”,错误仍然存在。