所以我在网络应用程序的密码系统上阅读了大量文章,它们看起来都很混乱。有人说你需要哈希你的PW并建立一个https安全连接,其他人说你只需要哈希和盐你的PW。
我只知道,经过数百万次这样的事情,有可能是某种类型的库可以为我提供一些在客户端输入密码的东西,并给我一些安全保存的东西我的SQL Server 2008数据库。
我是否需要担心所有https安全连接的内容?我可以确保正确散列PW吗?要哈希它,我需要任何外部库,还是可以完全用.NET创建一个安全的用户/ pw系统?
我以前从未这样做过,所以任何文章,提示和链接都会非常有用。感谢。
答案 0 :(得分:2)
如果您不想自己动手,可以随时使用ASP.Net Membership
ASP.NET成员资格为您提供了一种验证和存储用户凭据的内置方法。因此,ASP.NET成员资格可帮助您管理Web站点中的用户身份验证。通过使用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项目
答案 1 :(得分:0)
默认的MVC3 Internet应用程序模板(文件新项目)已经为您设置了此设置,只需将[Authorize()]添加到您要保护的控制器/方法即可。不要滚动新的东西,使用那里的东西。此外,请使用SSL,因为有人可以通过嗅探流量并简单地使用您的cookie来轻松窃取会话。就这么简单。