【问题标题】:Confirm Delete with Password in ASP.NET MVC在 ASP.NET MVC 中使用密码确认删除
【发布时间】:2014-03-23 00:38:21
【问题描述】:

我需要让我的用户在确认删除操作时输入他们的密码。但是我不知道如何将他们的输入与他们的密码进行比较。 我的算法是这样的:

read passwordFieldText
if userpassword == passwordFieldText
{
   execute delete action
} 
else return "incorrect password"

我当然知道无法将用户密码作为变量检索,那么我该如何实现呢?

【问题讨论】:

  • 您如何存储密码?是什么让你说there is no way to retrieve a user's password as a variable?如果您无法比较密码,您是如何登录的?
  • 你不能只在删除控制器上使用MVC授权属性吗?
  • 我使用 SimpleMembership,它内置于 MVC 4 中。如果我可以检索从数据库中散列的用户密码,那将是非常不道德的。
  • 您应该对他们输入的密码进行哈希处理,然后进行比较,就像登录一样。但实际上您应该遵循@woutervs 的想法
  • Jonesy 我不知道您是否曾经使用过 WebSecurity,但所有这些都是在幕后以最安全的方式自动完成的。

标签: c# asp.net asp.net-mvc asp.net-mvc-4 passwords


【解决方案1】:

您自己不会将他们的输入与他们的密码进行比较。您将他们的用户名和他们现在所说的密码传递给 Membership.ValidateUser。

   if (Membership.ValidateUser(username, password))
      // Do Delete
   else
      // Don't do Delete

文档可以在here找到。

【讨论】:

  • 非常感谢。似乎没有其他人能理解我的问题。
  • 如果用户名和密码相同,那是怎么做到的?
  • 抱歉,Ramesh,我不明白你的问题。如果用户名和密码相同呢??
【解决方案2】:

你错了。因为如果相同的密码有两个不同的用户,那么删除操作就是调用不相关的 :p 。太惨了

所以你需要

read passwordFieldText
if userid=currentuserId && userpassword == passwordFieldText
{
   execute delete action

//delete action look like

delete from user where userid=currentuserId  and userpassword == passwordFieldText
} 
else return "incorrect password"

以及如何查看您的密码

查看此示例

http://www.codeproject.com/Articles/689801/Understanding-and-Using-Simple-Membership-Provider

http://www.codeproject.com/Articles/664294/ASP-NET-MVC-Configuring-ASP-NET-MVC-4-Membership-w

更新

您可以通过此链接获取,如何查看会员表中的密码或电子邮件地址

http://www.itorian.com/2013/03/PasswordResetting.html

【讨论】:

  • 显然,我认为这是一种暗示。这没有回答我的问题。
猜你喜欢
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
相关资源
最近更新 更多