2012-03-28 162 views
1

我正在为一个客户的新项目工作,我们将在这里存储一些重要的在线数据。我已经给了一个旧的访问数据库,我转换到MS SQL,现在我想知道我应该使用什么样的登录&安全。ASP.NET登录和安全

我要运行该网站关闭SSL,但我不是100%确定如果我应该与表单身份验证或不同的东西。

任何意见将不胜感激。

回答

1

如果你在公共互联网上运行这个话,肯定使用SSL来加密会员相关的交易。使用SSL的“成本”很低 - Packet-sniffing和Firesheep-like工具的风险可能非常高。

基本身份验证是确定的,但我会忍不住与窗体身份验证去只是因为你可以控制的注册和登录体验 - 指导用户,验证码等..

+0

感谢您的回复!形式似乎是最好的方式! – bExplosion 2012-03-28 08:10:27

1

是去与窗体身份验证作为安全的第一部分。为什么?因为所有这些登录都基于cookie,基本思想通过表单身份验证非常有效。

现在,您需要添加额外措施来保护您的数据,例如。

  1. 确保您设置正确的形式验证 - 裁判:Can some hacker steal the cookie from a user and login with that name on a web site?
  2. 保留所有登录从用户连同IP地址和其它信息,并认识到事情的模式是怎么了。 ref:https://stackoverflow.com/a/9645770/159270
  3. 为某些关键操作添加额外的安全密码。
  4. 添加并使用不同级别的安全性。
  5. 除了身份验证表单,为管理员添加额外的登录安全测试,一个测试,你可以找到,并且只能从高权限的人那里知道。
2

如果你要在内部唯一的应用程序工作,使用Windows身份验证。这将工作外的开箱,只需要你使用:

<authentication mode="Windows"/> 

如果你想使用窗体身份验证,您可以构建自己的存储和加密机制,这需要一些工作。或者在数据库中添加一些表格,以便ASP.NET轻松提供用户名,密码和忘记密码功能。这是通过运行一个命令提示符工具,将增加必要的表为你实现:

aspnet_regsql.exe

这将启动一个向导,允许您配置要添加到SQL Server的功能。

要只是在SQL添加会员表格,登录为您的登录帐户使用:

aspnet_reqsql.exe -S <server> -D <database> -A m -E

或者,如果你要连接一个特定的用户,使用:

aspnet_reqsql.exe -S <server> -D <database> -A m -U <username> -P <password>

这是一个指向how to use Forms Authentication with SQL Server in ASP.NET 2.0教程的链接。作为ASP.NET 2.0,它看起来过时了,但在任何版本的ASP.NET V2及更高版本中都是相同的。