C# 自动生成密码并设置安全性Q&;第一次登录的选项

C# 自动生成密码并设置安全性Q&;第一次登录的选项,c#,asp.net,asp.net-membership,C#,Asp.net,Asp.net Membership,我正在尝试只使用电子邮件id注册用户。因此,当我输入电子邮件id并单击“注册”时,密码应自动生成,电子邮件应发送到特定的电子邮件地址。当他第一次使用该电子邮件id和密码登录时,我们需要显示更改密码和安全问答选项。在创建用户向导中,有一个用于自动生成密码的选项。为此,我遵循了这个原则。但我无法解决显示首次登录用户重置密码和设置安全问题和答案的问题。谁能给我一个解决办法 您必须在数据库中记录这些信息。您可以在数据库中设置bit类型字段,例如IsFirstTimeLogin,并在首次使用时将其设置为t

我正在尝试只使用电子邮件id注册用户。因此,当我输入电子邮件id并单击“注册”时,密码应自动生成,电子邮件应发送到特定的电子邮件地址。当他第一次使用该电子邮件id和密码登录时,我们需要显示更改密码和安全问答选项。在创建用户向导中,有一个用于自动生成密码的选项。为此,我遵循了这个原则。但我无法解决显示首次登录用户重置密码和设置安全问题和答案的问题。谁能给我一个解决办法

您必须在数据库中记录这些信息。您可以在数据库中设置
bit
类型字段,例如
IsFirstTimeLogin
,并在首次使用时将其设置为
true
,成功登录后将其设置为
false
。您还可以设置一个字段,指定用户是否需要更改密码。如果该字段设置为true,则可以要求用户更改密码。您也可以使用“所需密码更改”字段在将来对密码进行周期性更改

就自动生成密码而言,您可以使用电子邮件id作为第一个密码,但如果您需要更安全的选项,则可以向用户发出任意随机生成的密码,或者使用
GetHashCode
生成密码。比如:

string email = "test@test.com";
string password = Math.Abs(email.GetHashCode()).ToString();

您只能尝试使您的密码尽可能随机,您可以查看如何生成随机字符串

自动生成密码选项不会提供安全的随机密码?@Mihir,您可以尝试不同的方法生成随机字符串。您可以使用
GUID
,但通常初始密码并不难,这完全取决于您的要求。我已经用一个选项编辑了答案,可以使用
GetHashCode
生成密码,但它不会是随机的。@Habib。。谢谢我正在使用aspnetdb作为数据库。我可以在任何一个表中添加
bit
值吗?或者最好使用
userid
useremail
isFirstTime
这样的列创建一个新表?@Mihir,我不确定
aspnetdb
,如果您有权访问它,并且可以在中创建列,那么确保您可以创建自己的表,无论什么能让你的船漂浮:)是的。。但是像你这样的专家应该对如何实现这样的场景有一个想法。。这就是为什么我问:)