gpt4 book ai didi

asp.net - ASP .NET MVC 在工作期间进行身份验证和保持用户身份验证的最佳实践

转载 作者:行者123 更新时间:2023-12-04 19:29:30 25 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

4年前关闭。




Improve this question




我只是在调查这个问题并得到许多不同的建议,有人可以帮助详细说明这个主题吗?

  • 现有方法
  • 限制
  • 优缺点
  • 防御攻击

  • 我寻找一个简短的评论来获得指导。

    编辑:

    观众是来自世界各地的需要注册的用户。

    最佳答案

    从我有专业经验的一些系统中抛出一个答案:

    注意:如果您回答我在关于您的应用程序参数的评论中提出的问题,我可以进一步定义正面/负面。

    ASP.NET 身份

    使用用户名和密码的 MVC 框架附带的基本 MS 用户系统。一个好的方面是这个概念已经存在很长时间了,有大量的教程向您展示如何扩展它以使用诸如电子邮件/密码之类的东西或从您的用户那里收集某些数据,例如他们母亲的狗的中间名或任何。如果您有一个用户可以共享计算机的环境,您也应该查看这里。想想工厂或医院设置有点交易。不利的是,您基本上被迫维护整个用户设置、应用程序角色、用户管理,所有这些都包含在您的应用程序(或应用程序集群)中。谈到这一点时,请考虑 Forms auth。如果您的应用程序是外部的并且公开 AD 服务会让您的安全团队感到不安,您可能需要查看此内容。

    Windows 身份验证。

    您基本上是针对 Windows 用户帐户进行身份验证,尽管不是必需的,但在大多数情况下,您会处理诸如 Active Directory 之类的角色提供者。这样做的好处是,您的应用程序实际上不再负责用户管理和随之而来的所有支持(weeeeee!),而是您更多地授权角色在您的应用程序中工作。这使它变得轻而易举,但一个巨大的缺点是,如果您的用户可能共享计算机,那么这是一个巨大的安全噩梦。您可能希望针对拥有自己的特定计算机的用户来工作并坐在这台计算机上。如果您的应用程序是外部托管的,这将成为一场噩梦,因为很容易使您的 AD 容易受到攻击,因为它的某些服务需要从外部访问。

    窗体/Windows 混合模型

    在这种情况下,您基本上将站点配置为在表单例份验证上运行,但您的表单例份验证系统设置为 AD 中的身份验证用户作为后台进程。因此,这更适用于混合用户的情况,其中一些用户共享计算机,而一些用户拥有专用计算机。您基本上是在设置自己的表单例份验证网站,该网站接收重定向 url 以及用户的用户 AD 名称和密码。表单例份验证网站然后检查用户凭据在 Active Directory 中是否有效,设置有趣的东西,如 session cookie,并使用经过身份验证的用户将用户重定向回您的 MVC 站点。在您的 MVC 站点上,您也有 AD 连接器(或者您可以使用 N 层设计来查找它)来告诉您用户属于哪些 AD 组并进行适当处理。因此,对于这样的系统,您可以将用户管理方面从您的单个站点中移开,并将该职责放回到 AD 中,但同时您可以灵活地将基本上是 Windows 身份验证的应用程序启动到具有混合用户的环境中(拥有专用组合的人和共享的人。)不利的是,最初的第一次设置是一个巨大的痛苦,因为您实际上是在构建多个系统。此外,安全性也是一个问题,因为只要您拥有共享的计算机环境,事情就更容易被滥用。您必须制定一个良好的 session 超时策略,并以此为生。您还可以将您的表单与站点放在 DMZ 中,并将外部托管应用程序与 AD 直接交互分开。一个缺点是您需要处理诸如 AD 锁定、密码重置、暴力尝试等问题。

    外部提供商,例如 facebook、twitter、google 以及类似 OAuth 的东西 .

    我从来没有亲自在生产应用程序上走这条路,所以我不能给你真实世界的正面或负面信息,但需要提到它,也许其他人可以给我们一些见解。

    对这个答案中的大量文本块表示歉意,当我可以使用桌面时,会使格式变得“更漂亮”。

    关于asp.net - ASP .NET MVC 在工作期间进行身份验证和保持用户身份验证的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45835113/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com