【问题标题】:When developing a web app (ASP.NET/MVC) when do you add your security?在开发 Web 应用程序 (ASP.NET/MVC) 时,您何时添加安全性?
【发布时间】:2010-10-18 16:52:21
【问题描述】:
在开发 Web 应用程序时,在我的例子中是 ASP.NET MVC 应用程序,但这个问题不是特定于平台的,您何时添加用于成员资格、角色和身份验证的基础架构?
我实际上已经做到了这两种方式......
1. 开始开发应用程序,其中会员/角色/身份验证是第一个里程碑之一,并且
2. 等到大部分主要功能和要求都实现后,再添加成员资格/角色/身份验证基础设施。
对此是否有最佳实践或个人喜好?
【问题讨论】:
标签:
asp.net
asp.net-mvc
authentication
asp.net-membership
【解决方案1】:
我会根据我的工作来混合它。
ASP.Net 允许您将安全组件抽象得如此之多,以至于我发现事后实现它们真的很容易。有时它就像让您的页面从自定义页面类继承一样简单。 (或者在 MVC 的情况下,自定义控制器类)
不过,我发现当我不必担心安全措施会妨碍时,调试核心功能要容易得多。
【解决方案2】:
引用“Professional ASP.NET MVC 1.0”(我碰巧正在研究),
ASP.NET MVC 的默认 Visual Studio 项目模板自动启用表单身份验证
当创建新的 ASP.NET MVC 应用程序时。它还自动添加一个预建的帐户登录
项目的实施——这使得在站点中集成安全性变得非常容易。
至少对于本教程来说,它大多只是发生,并且任何显式引用似乎都很好地接近尾声 - 但没有太多。如果您按预期使用它,它的简单程度与 PHP 会话相同。
【解决方案3】:
我对 ASP.NET 不是很熟悉,但是每次我开发 Web 应用程序时,安全性几乎是我编写的第一件事,否则你可能会在进一步的开发中遗漏一些东西;要么是因为你忘记了它,要么更可能是因为在开发过程中发生了一些变化。
【解决方案4】:
安全性是前期应用程序设计的一部分。除非在最微不足道的情况下,否则以后不能添加它。
示例:人力资源应用程序。薪酬经理可以编辑薪酬,招聘人员只能查看。如果你事先不知道这种区别,你就不会将它构建到你的用户界面中,你就会遇到麻烦。是的,ASP.net 中的安全性在很大程度上是可配置的,但结构/粒度必须在应用程序中到位。