我目前正在Java项目中实现忘记密码功能.我的方法是,
虽然我已经限制了email address重置密码页面中的字段进行编辑(只读字段),但任何人都可以更改浏览器地址栏中的URL并更改电子邮件地址字段.
如何限制每个用户更改重置密码页面中的电子邮件地址?
我有一个拥有PostgreSQL数据库的客户端,他不记得我们在设置数据库时使用的密码.有没有办法恢复这些信息,所以我不必吹走他的数据库,从头开始?
数据库正在PC上运行.
如何在MVC2应用程序中实现密码重置?
使用ASP .NET成员资格提供程序对密码进行哈希处理.不使用密码恢复问题.使用具有标准AccountController类的标准ASP .NET MVC2项目模板.
如果用户忘记了密码,则应将带有临时链接或新密码的电子邮件发送到用户的电子邮件地址.
在MVC 2 C#中哪里可以找到实现它的代码?
堆栈溢出包含两个答案,讨论实现它的方法.没有示例代码.我搜索了"asp .net mvc密码重置c#示例代码下载",但还没有找到示例代码.
我是MVC的新手.在哪里可以找到密码恢复的示例代码?这是VS2010生成的项目模板中缺少的.
更新
我在Mono 2.10中尝试了这个代码,但是有异常:
Mono不支持CspParameters
在线
des.Key = pdb.CryptDeriveKey("RC2", "MD5", 128, new byte[8]);
Run Code Online (Sandbox Code Playgroud)
如何在Mono中运行它?
堆栈跟踪:
System.NotSupportedException: CspParameters not supported by Mono
at System.Security.Cryptography.PasswordDeriveBytes.CryptDeriveKey (string,string,int,byte[]) [0x0001b] in /usr/src/redhat/BUILD/mono-2.10.2/mcs/class/corlib/System.Security.Cryptography/PasswordDeriveBytes.cs:197
at store2.Helpers.Password.EncodeMessageWithPassword (string,string) <IL 0x00055, 0x000f3>
at store2.Helpers.AccountHelper.GetTokenForValidation (string) <IL 0x00033, 0x00089>
at MvcMusicStore.Controllers.AccountController.PasswordReminder (MvcMusicStore.Models.PasswordReminderModel) <IL 0x001ac, 0x00495>
at (wrapper dynamic-method) System.Runtime.CompilerServices.ExecutionScope.lambda_method (System.Runtime.CompilerServices.ExecutionScope,System.Web.Mvc.ControllerBase,object[]) <IL 0x00020, 0x0005b>
at System.Web.Mvc.ActionMethodDispatcher.Execute (System.Web.Mvc.ControllerBase,object[]) <IL 0x00008, 0x0001b>
at System.Web.Mvc.ReflectedActionDescriptor.Execute (System.Web.Mvc.ControllerContext,System.Collections.Generic.IDictionary`2<string, object>) <IL 0x00072, 0x00103>
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod …Run Code Online (Sandbox Code Playgroud) 有没有人有以下功能的解决方案(示例代码):
我的提供者目前通过这种方式进行参数化:
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="5"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
name="AspNetSqlMembershipProvider"
Run Code Online (Sandbox Code Playgroud)
这种类型的程序的安全问题进行了讨论这里之前.
c# asp.net asp.net-membership forgot-password password-recovery
我必须更改密码别的东西,我有喜欢的所有细节userid,username,encrypted password,password format.
如何在asp.net会员资格中通过SQL更改密码?
sql asp.net asp.net-membership password-recovery sql-server-2008
我正在尝试为密码重置进行验证过程,我使用的是两个值:纪元时间,我想使用用户的旧密码(pbkdf2)作为密钥,
由于我不想获得非ASCII字符,我使用的是SimpleEncode库,因为它很快,因为它只是一个使用了密钥的BASE64,但问题是密码太长(196个字符)所以我得到一个长密钥!
我所做的就是分割结果code = simpleencode.encode(key,asci)[::30],但这不是唯一的!
为了了解它是如何工作的,我尝试了Facebook重置过程,但给出的是一个数字!那么这个过程是如何工作的,难道他们不会使用密钥来让某人伪造链接来重置某人的密码吗?
更新:算法将如何工作:
1-使用epoche获得时间 time.time()
2-生成epoche时间的Base64(用于URL)和纪元时间值+一键,此键为PBKDF2(密码).
3-生成网址www.example.com/reset/user/Base64(time.time())并发送此网址+ simpleencode.encode(key,asci)[::30]
4-当用户点击URL时,他把生成的代码,这个生成的代码,如果它与URL匹配,那么让他修改密码,否则,它是一个忘记URL!
我发现很难进行密码恢复,因为我以前从未这样做过.
到目前为止,我的网络应用程序有:
Spring Security,其中正确地密码密码并实现用户角色并正常工作.
该策略暗示了stackoverflow的研究:
什么是未知的:
正如您所看到的,对于单个问题,列表非常严重.因此希望您能够提供指导资源,以便逐步完成.我有点惊讶我在Spring Security文档中找不到这个.谢谢.
我是学生,所以不知道这样做的行业最佳实践,尤其是在Java环境中,所以我真的希望任何人都能提供帮助.
我目前有一个系统,如果用户忘记了密码,他们可以通过点击忘记密码链接重置密码.他们将被带到他们输入用户名/电子邮件的页面,然后会向用户发送一封电子邮件,我想知道如何在电子邮件中实现密码重置链接,以便用户点击链接后/她被带到一个页面,允许他们重置密码.
这是我控制器中的代码
public ActionResult ForgotPassword()
{
//verify user id
string UserId = Request.Params ["txtUserName"];
string msg = "";
if (UserId == null)
{
msg = "You Have Entered An Invalid UserId - Try Again";
ViewData["ForgotPassword"] = msg;
return View("ForgotPassword");
}
SqlConnection lsql = null;
lsql = DBFactory.GetInstance().getMyConnection();
String sqlstring = "SELECT * from dbo.[USERS] where USERID = '" + UserId.ToString() + "'";
SqlCommand myCommand = new SqlCommand(sqlstring, lsql);
lsql.Open();
Boolean validUser;
using (SqlDataReader myReader = myCommand.ExecuteReader())
{
validUser = false; …Run Code Online (Sandbox Code Playgroud) 据我所知,有两种合理的方法可以重置用户忘记的密码.
让用户输入他们的电子邮件地址,并将新的明文密码发送到他们的电子邮件地址.
链接将发送到其电子邮件地址,该URL在URL中具有UID号.单击此按钮会将用户带到网站上的表单,在那里他们可以选择自己的新密码.
哪种方法更可取,为什么?
如果使用方法1,则第三方可能会阅读电子邮件并获取新密码.如果使用方法2,什么是阻止某人有条不紊地通过UID代码尝试访问表单来更改用户的密码?
用户忘记了密码,并且(几乎)所有会员网站都需要一种方法来帮助用户重新访问.
我想实现常见的场景:
以下是我计划实现的方法(C#/ ASP.NET MVC):
member.ResetToken)中的成员实体上,并通过电子邮件向他们发送带有该GUID的链接(发送的电子邮件将通知他们只能使用此链接一次)member.ResetToken.如果找到他们的帐户,请向他们显示密码重置表单,并在他们完成重置后清除member.ResetToken其帐户.这是我的问题:保持这样(他们可以随时,现在或将来使用该链接重置密码)或添加时间戳以限制他们重置密码的时间长度?
从用户体验的角度来看,只要你准备好就重置密码的能力很好,但我想确保我不会忽视这可能带来的一些安全问题.
asp.net ×2
c# ×2
java ×2
asp.net-mvc ×1
database ×1
mono ×1
passwords ×1
plaintext ×1
postgresql ×1
python ×1
registration ×1
security ×1
sql ×1
sql-server ×1