0

这是我想问很久的事情。

我一直在为许多项目使用 FormsAuthentication、Authorization、Membership 和 Role 提供程序,但仔细想想,它们中的每一个都让我觉得有点笨拙。而且更难扩展。

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

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

谢谢

4

2 回答 2

1

我不是 Membership 框架的粉丝,但它比 roll-your-own 有一个很大的优势:

该框架为您解决了一些安全问题(例如,存储密码哈希而不是完整密码。)并且经过良好测试。与安全相关的代码通常很复杂,并且没有深入了解它的人很难实现和测试。糟糕的实施会导致安全漏洞。

于 2013-09-11T13:31:20.557 回答
1

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

很多时候,更简单的方案不是很安全。有一些系统将明文密码直接存储在数据库中,并且不采取任何措施来保护传输中的密码(通过网络)。如此简单是安全的权衡(有时)。

还要记住,“开箱即用”的东西几乎肯定比你自己构建的任何东西都经过了更好的测试(不是你个人,但通常,所以没有冒犯:)),例如散列,也许是密钥交换,身份验证,所有这些东西。安全包,如果没有别的,旨在避免不得不从头开始滚动所有低级别的东西。

于 2013-09-11T13:34:54.167 回答