不使用内置身份验证系统的原因

时间:2013-09-11 13:23:53

标签: asp.net asp.net-mvc forms-authentication

这是我想问的问题。

我一直在为许多项目使用FormsAuthentication,Authorization,Membership和Role提供程序,但是考虑一下,每个项目都让我觉得有点笨拙。甚至更难扩展。

当我查看我需要实现(并理解)在ASP.NET中对用户进行身份验证的代码时,我觉得有点奇怪的是,在PHP和RoR世界中,他们几乎只检查数据库中的用户名和密码,设置会话并重定向到另一个页面。

那么,有什么理由可以阻止我实现一种更简单的方法来处理登录和用户管理呢?

谢谢

2 个答案:

答案 0 :(得分:1)

我不是会员框架的粉丝,但它比滚动自己有一个很大的优势:

该框架会为您解决一些安全问题(例如,存储密码哈希而不是完整密码。)并且经过充分测试。与安全相关的代码通常很复杂,执行不当,并且对那些对它没有深入了解的人进行测试。执行不力会导致安全漏洞。

答案 1 :(得分:1)

我想你可能已经基本回答了你自己的问题。如果使用“开箱即用”Forms Authentication等来满足您的项目要求,那么我不会太努力地尝试扩展或修改它。

很多时候,更简单的方案并不十分安全。有些系统将明文密码存储在数据库中,并且无法保护传输中的密码(通过线路)。如此简单就是安全的权衡(有时)。

请记住,“开箱即用”的东西几乎肯定比你自己构建的任何东西都更好(不是你个人,但一般来说,所以没有冒犯:)),例如哈希,也许密钥交换,身份验证,所有这些东西。安全包,如果没有别的话,被设计为一种避免从头开始滚动所有低级别东西的方法。