【问题标题】:User/PW System for an MVC 3 appMVC 3 应用程序的用户/密码系统
【发布时间】:2011-09-09 17:26:54
【问题描述】:

因此,我阅读了许多有关 Web 应用程序密码系统的文章,它们看起来都非常令人困惑。有人说你需要散列你的 PW 并建立一个 https 安全连接,其他人说你只需要散列和加盐你的 PW。

我只知道,在这样做了数百万次之后,可能有某种库可以为我在客户端输入的密码做很多事情,并给我一些安全保存的东西我的 SQL Server 2008 数据库。

我需要担心所有的 https 安全连接吗?我可以确保我正确地散列密码吗?要散列它,我需要任何外部库还是可以完全在 .NET 中创建一个安全的用户/密码系统?

我以前从未这样做过,所以任何文章、提示、链接都会很有帮助。谢谢。

【问题讨论】:

    标签: security sql-server-2008 asp.net-mvc-3 hash passwords


    【解决方案1】:

    如果您不想自己动手,可以随时使用ASP.Net Membership

    ASP.NET 成员资格为您提供了一种内置方式来验证和存储用户凭据。因此,ASP.NET 成员身份可帮助您管理网站中的用户身份验证。通过使用 ASP.NET 登录控件,您可以使用 ASP.NET 成员身份和 ASP.NET 表单身份验证来创建一个完整的用户身份验证系统。

    ASP.NET 成员支持以下设施:

    • 创建新用户和密码。

    • 在 Microsoft SQL Server、Active Directory 或替代数据存储中存储成员信息(用户名、密码和支持数据)。

    • 对访问您网站的用户进行身份验证。您可以通过编程方式对用户进行身份验证,也可以使用 ASP.NET 登录控件来创建一个只需要很少或不需要代码的完整身份验证系统。

    • 管理密码,包括创建、更改和重置密码。根据您选择的会员选项,会员系统还可以提供自动密码重置系统,该系统接受用户提供的问题和响应。

    • 为经过身份验证的用户提供唯一标识,您可以在自己的应用程序中使用该标识,并且还与 ASP.NET 个性化和角色管理(授权)系统集成。

    • 指定自定义成员资格提供程序,它允许您替换自己的代码来管理成员资格并在自定义数据存储中维护成员资格数据


    Configuring an ASP.NET Application to Use Membership


    github 上还有一个名为 Membership Starter Kit 的 MVC 项目

    【讨论】:

    • 我宁愿自己动手,因为我有点不喜欢使用这些大框架来完成非常简单的任务。我的网站实际上是一页,我不需要控制不同的页面来获取凭据和类似的东西。这太棒了 - 并且会起作用 - 但我更希望有一种简单的方法来自行设置系统,我只是想确保我正确地覆盖了所有基础。
    • “我只知道,在这样做了数百万次之后,可能会有某种图书馆”我以为这就是你要找的东西?
    • 更多的是一个仅用于存储和检索密码的库,而不是用于成员资格的整个框架。
    • 我不知道加盐和散列密码是否有人会围绕它建立一个库,因为它真的没什么。每个用户都会得到一个独特的盐。使用该盐来散列他们的密码并存储它。当他们尝试登录时,通过用户名/电子邮件查找他们的用户,使用该用户的 salt 对他们输入的内容进行哈希处理,如果匹配,则让他们登录。
    【解决方案2】:

    默认的 MVC3 Internet 应用程序模板(文件新项目)已经为您提供了此设置,只需将 [Authorize()] 添加到您要保护的控制器/方法中。不要推出新的东西,使用适合你的东西。此外,请使用 SSL,因为有人可以通过嗅探流量和简单地使用您的 cookie 轻松窃取会话。就这么简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-14
      • 2013-07-07
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      相关资源
      最近更新 更多