扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
从应用程序的角度来看,安全性通常指对用户的鉴别以及对系统资源授予访问权限。ASP.NET提供了许多鉴别和授权机制,它们与IIS、。NET Framework以及操作系统底层的安全服务是相连的。
当一个客户端发出一个Web请求时,将发生下列顺序的鉴别和授权事件:
1.IIS鉴别
2.ASP.NET鉴别
3.ASP.NET授权
鉴别用户
如果页面是可以被察看的,而请求来自一个非受限的IP地址,IIS将通过预定义的鉴别机制来对调用请求进行鉴别。首先IIS确保请求来自一个可信任的IP地址。如果不是,请求将以HTTP错误403.6而被拒绝。第二个措施是检查被请求的资源是否可以被读或被浏览。如果不是,请求将以HTTP错误403.2而被拒绝。然后IIS尝试使用Intergrated、Digest或Basic方法来鉴别这个调用。如果用到了Windows的Intergrated方法,Kerberos或NTLM将被使用。如果请求通过了这一关,就轮到ASP.NET出场了。
ASP.NET支持三种类型的鉴别方法:Windows、Forms和Passport.如果ASP.NET被配置为Windows鉴别,则它不需要其它的步骤,而是直接承认任何从IIS传来的安全标记。如果ASP.NET被配置为Forms鉴别,将使用一个HTML表单提示用户输入信任资料。通过用户ID和密码在存储的合法用户列表中查寻。应用程序可以任意选择最合适的存储机制,包括SQL Server数据库或Active Directory服务。最后如果ASP.NET被配置为Passport鉴别,用户将被转入一个Passport Web站点并由Passprot服务来鉴别。
第四中类型的鉴别是None,这意味着ASP.NET并不执行自己的鉴别而是完全依靠已经由IIS执行的鉴别。在这种情况下,匿名用户可以连接进来,而访问资源使用的是ASP.NET账户。将ASP.NET鉴别模式设定为None并不妨碍程序实现自己的鉴别层。
在Web.config文件中通过使用
授权
当然,鉴别只是意味着用户被确认为是其本身。下一步是确认用户拥有足够的权限来访问请求的资源。
在鉴别完之后,ASP.NET将校验调用是否被授权用以访问请求的资源来执行操作。一对HTTP模块提供了这项服务:UrlAuthorizationModule和FileAuthorizationModule.前者确保Web.config文件中
授权规则由两部分独立的信息组成,它们定义了哪些是允许的那些事禁止的。在
你也许注意到鉴别模式只能在machine.config文件或在程序层的Web.config文件中设置,子目录继承了程序的鉴别模式。但是,授权设置可以在每个子目录的Web.config文件中设置。换句话说,授权比鉴别支持更细。
基于角色的安全
如果你需要鉴别用户,你同样需要为他们建立个性化的页面。这里有两大的选择:一是实现一个个人资料系统,为每个用户存储配置信息;二是定义一些角色,把用户映射到这些角色上。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者