gpt4 book ai didi

asp.net - ASP.Net身份验证和授权选项

转载 作者:行者123 更新时间:2023-12-02 12:10:11 25 4
gpt4 key购买 nike

我通常具有实施身份验证和授权的要求。我曾经使用具有用户,角色,Role_Pages,User_Pages和User_Roles的自定义代码来实现它。因此,通过这种方式,我们可以赋予某些用户角色(将多个页面组合在一起)和/或直接定义对某些页面的访问权限。所有具有指定精细权限的功能,例如在那些页面中添加/编辑/删除记录的功能。

我的问题是:使用表单身份验证实施此操作有多容易?与实施自定义解决方案相比,这有什么好处?我还担心知道从会话劫持和防止欺骗(攻击者可以重播请求并冒充合法用户)的欺骗方面是否会有任何优势。表单身份验证会在此有什么优势吗?或者只有SSL可以对此加以保护(这使得两种方法在这方面是平等的)。

最佳答案

表单身份验证只是一种将身份验证令牌从浏览器传递到服务器的机制,该服务器充当请求者的身份。现在,您正在使用Session变量来记住已登录用户的信息吗?这类似于表单身份验证,因为会话状态(部分)通过cookie维护。同样,表单身份验证会创建一个防篡改的身份令牌,并使用cookie进行存储,以便在用户发出后续请求时,该cookie被发送到服务器,服务器上说:“嘿,我是用户X。”顾名思义,表单身份验证只是一种用于身份验证(即识别)访问者的机制。

对于授权,您通常会使用URL授权,这是一种在Web.config中指定的机制。这些页面是某些用户(和/或角色)可以访问(或无法访问)的页面。同样,URL授权,顾名思义,只是一种授权用户的机制,用于确定给定的请求者是否有权检索特定资源。

那么,如何存储用户信息,例如用户名,电子邮件,密码等?那就是会员制发挥作用的地方。它是用于创建,存储和管理用户帐户的可扩展框架。还有角色系统,该系统是类似的可扩展模型,用于创建角色并将其与用户相关联。

然后,这些是您应该探索的工具和框架:表单身份验证,URL授权,成员资格和角色。它们是互补技术,(通常)串联使用。

为您解决特定问题:


使用Forms Authentication实施此操作有多么容易,以及与实施自定义解决方案相比有什么优势。


表单身份验证(以及URL身份验证和成员资格和角色)非常容易实现。使用这些技术而不是定制解决方案具有三个主要优点:


使用这些技术效率更高。您不必重新发明轮子,从而节省了很多时间。
使用这些技术可以减少错误代码。如果实施自定义解决方案,则可能会遇到安全漏洞或测试期间未发现的错误。自ASP.NET诞生以来(至今已有近十年),表单身份验证和URL授权都已存在,并已被全球数百万开发人员使用和“现场测试”。成员资格和角色已经存在了5-6年,并且具有相似的现场测试水平。显然,您不能对自定义解决方案说同样的话。
使用这些技术可使您的应用程序更易于维护。如果您需要雇用一个新的开发人员来帮助该站点,则她很可能已经熟悉auth等表格,但是需要花一些时间来加快自定义解决方案的速度。



我还担心知道从会话劫持和防止欺骗(攻击者可以重播请求并冒充合法用户)的欺骗方面是否会有任何优势。表单身份验证会在此有什么优势吗?或者只有SSL可以对此加以保护(这使得两种方法在这方面是平等的)。


表单身份验证具有非常严格的安全性(假设您使用的是默认设置)。身份验证票证经过加密和数字签名,并且内置了基于时间的有效期(以减少重放攻击的表面积)。我不确定您当前使用的自定义解决方案用于身份验证的原因,因为您没有提到它,但是我敢打赌它是会话状态。那将是“安全的”。关键是,身份令牌(在您的情况下为会话cookie和在表单为auth的情况下为身份验证票证)既安全又可以在没有SSL的情况下通过Internet安全传输。

但是,无论使用哪种方法,都必须对SSL至少保护登录页面。这是用户输入其凭据的页面。如果未通过SSL访问该页面,则用户的凭据将以纯文本格式通过Internet发送。


[会员资格,角色等]将使我能够直接通过角色分配用户对某些页面的访问权限(将访问定义分组到多个页面)


URL授权使您可以根据用户/角色锁定整个页面。要授予对页面上特定功能的访问权限,您必须编写自己的代码/逻辑。

要学习这些技术,我会毫不客气地建议您查看my tutorials on website security。 C#和VB中总共有15个循序渐进的教程,您可以下载完整的,经过测试的有效演示代码。它们涵盖了与用户帐户相关的方案的范围,从表单身份验证到URL授权再到基于角色的授权再到创建和管理用户帐户。

再次是URL:http://www.asp.net/security/tutorials

编程愉快!

关于asp.net - ASP.Net身份验证和授权选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3643943/

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