gpt4 book ai didi

c# - ASP.Net - 如何在使用登录控件登录前加密密码

转载 作者:行者123 更新时间:2023-11-30 17:18:06 25 4
gpt4 key购买 nike

我正在使用 ASP.Net 登录控件登录 Web 应用程序。当用户提交表单时,我想在 ASP.Net 发送信息进行身份验证之前调用一个函数来加密密码。

我尝试在密码字段上添加客户验证器,如果密码不为空,则 Password.Text 将替换为加密值。但是,似乎 ASP.Net 仍然发送原始密码进行身份验证。

我还尝试在登录按钮上添加一个 onClick 事件来加密密码,但 ASP.Net 仍然发送原始密码进行身份验证。

有没有办法做到这一点?谢谢!

更新:

很抱歉没有说清楚。我需要的是在服务器端加密密码。

我在注册用户时没有使用 ASP.Net Membership 来加密或散列密码。 passwordFormat 属性已设置为“清除”。

我正在做的是:

  1. 当新用户注册时,我使用自定义函数来加密密码并将其保存到数据库中。
  2. 当用户尝试登录时,我想使用相同的函数对用户输入的密码进行加密,让 ASP.Net 对用户进行身份验证。

我遇到的问题是我找不到在 ASP.Net 启动身份验证过程之前调用加密函数的方法。

希望这是有道理的。谢谢。

艾伦

最佳答案

添加 OnClick 事件绝对是正确的。如果您尝试在客户端进行加密,那么您将需要改用 OnClientClick 事件(OnClick 发生在服务器端,而 OnClientClick 发生在客户端)。我最初假设您使用它来调用执行加密的客户端 javascript 函数?

[编辑]

但是,如果您在服务器端进行加密并使用登录控件,那么您可能希望使用 OnAuthenticate 事件:

<asp:Login id="Login1" runat="server" OnAuthenticate="OnAuthenticate">
</asp:Login>

然后在这里进行加密:

private void OnAuthenticate(object sender, AuthenticateEventArgs e) {
bool authenticated = false;
String encryptedPassword = Encrypt(Login1.Password);
authenticated = YourAuthenticationMethod(Login1.UserName, encryptedPassword );

e.Authenticated = authenticated;
}
private bool YourAuthenticationMethod(String username, String encryptedPassword) {
//test the encrypted password against that retrieved from your database using the username
}

关于c# - ASP.Net - 如何在使用登录控件登录前加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com