ASP.NET MVC 应用程序的全面安全解决方案

发布于 2024-10-07 11:41:56 字数 266 浏览 2 评论 0原文

如果您正在规划和准备一个大型 ASP.NET MVC 项目,您将如何设计和构建全面的、可扩展的和可维护的安全解决方案,该解决方案需要

  • 用户、
  • 角色、
  • 控制器级和操作级安全性、
  • 项目级安全性(将用户或角色应用于项目)、
  • 安全修剪(根据上述设置隐藏一些菜单选项)。

如果您要估计制作此内容所需的时间和精力,并且必须向客户发出报价,那么会是多少?您不必提供具体的金钱数字,只需提供计费时间即可。

If you were planning and preparing for a big ASP.NET MVC project how would you approach it to design and build comprehensive, extensible and maintainable security solution that requires

  • users,
  • roles,
  • controller-level and action-level security,
  • item-level security (applying users or roles to items),
  • security trimming (hiding some menu options based on the above settings).

If you were to estimate the time and effort to produce this and would have to issue a qoute to the client, what would it be? You don't have to give a number in money, only billable hours.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帝王念 2024-10-14 11:41:56

您不必提供具体的金钱数字,只需提供计费时间即可。

您希望有人免费为您做工作吗?来吧...

授权

无论如何,我会使用代码访问安全和模拟来在我的所有服务中实现安全。检查 PrinicpalPermission 属性。

控制器/操作级别

对于 MVC,只需使用 Authorize 属性提供授权。派生它以提供更细粒度的控制。

安全调整

if (System.Thread.Threading.CurrentThread.CurrentPricinpal.IsInRole("Administrator"))
   //show menu item

项目级别

默认 MVC 实现不可能实现。您需要手动检查您的操作。

if (!System.Thread.Threading.CurrentThread.CurrentPricinpal.IsInRole(item.RequiredRole))
  return View("AccessDenied", null); //return accessdenied view.

身份验证

我不知道你有什么样的用户。都是在AD域注册的吗?然后使用 Windows 身份验证来验证您的用户。这只是一个IIS设置..

You don't have to give a number in money, only billable hours.

You want someone to do your work for free? Come on...

Authorization

Anyway, I would use Code Access Security and impersonation to implement security in all my services. Check the PrinicpalPermission attribute.

Controller/Action level

As for MVC, simply use the Authorize attribute to provide authorization. Derive it to provide a more finegrained control.

Security trimming

if (System.Thread.Threading.CurrentThread.CurrentPricinpal.IsInRole("Administrator"))
   //show menu item

Item level

Not possible with default MVC implementation. You need to do a manual check in your actions.

if (!System.Thread.Threading.CurrentThread.CurrentPricinpal.IsInRole(item.RequiredRole))
  return View("AccessDenied", null); //return accessdenied view.

Authentication

I don't know what kind of users you got. Are all registered in a AD domain? Then use Windows Authentication to authenticate your users. It's just a IIS setting..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文