ASP.NET应用程序的安全方案(二)—授权

【ASP.NET教程-ASP.NET简介】构建强大的Web应用程序的开发框架 ASP.NET是一种用于构建Web应用程序的开发框架。它是Microsoft.NET平台的一部分,使用C#或VB.NET等编程语言进行开发。ASP.NET支持Web表单、MVC(模型-视图-控制器)和Web API等开发模式。ASP.NET基于服务器端技术,它将Web应用程序的逻辑和用户界面分离,以提供更好的可维护性和灵活性。它还提供了许多内置的功能和控件,用于处理用户输入、数据验证、会话管理等常见的Web开发任务。 阅读详情

摘要:本文ASP.NET应用程序授权的概念,介绍了各种授权模式并进行了比较,阐述了选择授权模式的机制。


关键字:授权 authorization ASP.NET WEB应用

1.1. 授权概念
    任何成功的应用程序安全策略的基础都是稳固的身份验证和授权手段,以及提供机密数据的保密性和完整性的安全通讯。
    授权(authorization)过程负责控制通过了身份验证的客户端可以访问哪些资源,以及可以执行哪些操作。可访问的资源既包括文件、数据库等,还包括系统级的资源,如注册表,配置数据等。
    许多WEB程序不是直接授权客户访问底层的资源,而是通过方法(method)来授权客户端所能够执行的操作。这样做的主要原因是考虑到应用系统的可伸缩性和可管理性。     图1列出了各种安全技术以及每种技术所提供的主要授权方式。
2. 2. 授权方式
    如图1所示,Windows 2000上的.NET框架上提供了以下几种授权方式:
  • ASP.NET授权
  • Enterprise Services授权
  • SQL Server授权

2.1 ASP.NET授权

2.1.1 URL授权

    这是一种通过计算机的设置和应用程序配置文件来配置的授权机制。URL授权允许限制用户访问位于应用程序URI命名空间中的特定文件和文件夹。

2.1.2 文件授权

    可以使用此方法来限制对某个WEB服务器上指定文件的访问。访问权限由与文件相关的Windows ACL所确定。

2.1.3 主体权限请求

    主体权限请求(Principal Permission Demand)可以通过声明方式或是编程方式作为一种额外的精确的访问控制机制。这种方式允许你根据单个用户的身份标识组成员关系,来限制对类、方法或单独代码的访问。

2.1.4 .NET角色

    .NET角色用于将应用程序中具有相同权限的用户分成一组。这种方式可以和基于票证的身份验证方案(如窗体身份验证)一起使用,可以通过声明方式或是编程方式来配置对资源和操作的访问。

2.2 Enterprise Services授权

    在Enterprise Services的应用程序中,由Enterprise Services 角色的成员关系来控制客户端访问包含于服务器组件的功能。这些角色和.NET角色不同,而且可以包含Windows组帐户或用户帐户。角色成员关系是在COM+目录中定义的,而且通过组件服务(Component Service)工具管理。

2.3 SQL Server授权

    SQL Server支持精确授权,这些权限可以应用于单独的数据库对象。权限既可以基于角色成员关系,也可以授予单独的Windows用户帐户或组帐户。
3. 选择授权策略
    ASP.NET应用程序有两种基本的权限策略:基于角色的授权和基于资源的授权。

3.1 基于角色的授权

    对操作的访问通过调用者的角色成员关系,提供安全保护。角色可以将应用程序的用户群划分为具有相同安全权限的用户组。用户被映射到角色,而且如果某个用户被授权执行所请求的操作,则应用程序可以用固定的标识来访问资源。这些标识被各自的资源管理器(如数据库和文件系统)所信任。

3.23.2 基于资源

    单独的资源使用Windows ACL来提供安全保护。应用程序在访问资源之前模拟(impersonate)调用者,这样可以使操作系统执行标准的访问检查。所有对资源的访问都是使用原始调用者的安全上下文。这种模拟方式在应用程序的中间层连接池不能被有效使用,因而影响了应用程序的可伸缩性。
4. 角色的授权的模式
    在大多数可伸缩性至关重要的.NET WEB应用程序,使用基于角色的授权方式是最佳选择。常用的模式如下:
  • 在前端Web应用程序中对用户进行验证
  • 将用户映射到角色
  • 根据角色成员关系来授权对操作(不是直接对资源)的访问
  • 使用固定的服务标识来访问必要的后端资源。
    一个典型的具体实现步骤如下::
  • 获取凭据信息
  • 验证凭据信息
  • 将用户添加到角色中
  • 创建一个IPrincipal对象
  • 将IPrincipal对象放置到当前的HTTP上下文中
  • 根据用户标识/角色成员关系进行授权
    实现的代码参见 《ASP.NET应用程序的安全方案(一)-身份验证》。

Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=30568

 
ASP.NET Core WebApi基于JWT实现接口授权验证 一、ASP.Net Core WebApi JWT课程前言 我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一次进行用户认证才行,因为根据http协议,我们并不能知道是哪个用户发出的请求,所以为了让我们的应用能识别是哪个用户发出的请求,我们只能在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给... 阅读详情

相关推荐

NET软件授权加密

NET软件授权系统包含源代码,保护你的软件授权,内含教材

本地ASP.NET开发页面使用AzureAD(AAD)验证登录

本地ASP.NET开发页面使用AzureAD(AAD)验证登录Azure和Office365已不是一个热门话题了,因为所谓的云时代已经走进了技术大师们的内心,大家多少有一定了解了,所以就不多介绍了,我的Blog中之前也写了很多关于Azure及Office365的相关文章,如果有兴趣的同学可以参考一下。一般企业内部如果使用了Azure或者Office365产品的话,都会跟本地的...

weixin_33826268的博客 843

C#软件授权源码-十分完整

C#软件授权源码-十分完整

Asp.net 身份验证、授权

1.       Asp.net是依存于IIS的一个服务,说到Asp.net的安全相关的话题当然要有一个整体上的思路:IIS接收—》IIS验证—》IIS授权---》ASP.net验证---》Asp.net授权---》资源返回给用户 IIS从网络上接收到一个HTTP WEB请求可以使用SSL技术来保证服务器的身份,此外SSL也可以提供一个安全通道来保护客户端和服务器端的机密数据的传送。IIS使用基本

1079

C#软件授权源码(亲测可用)

C#软件授权源码(亲测可用)

保姆级教程:用Jetson Orin Nano和ROS2 Humble搞定PIXhawk 4飞控通信(含配置文件详解)

本文提供了一份详细的Jetson Orin Nano与PIXhawk 4飞控通信配置指南,涵盖硬件连接、ROS2 Humble环境搭建、MAVROS2配置及通信调试全流程。通过实战案例和配置文件详解,帮助开发者快速实现无人机上位机与飞控的稳定通信,适用于无人机开发与自动化控制场景。

weixin_33670786的博客 475

asp.net 的认证 (authentication) 和授权 (authorization)

1.authorization是用过的,用于访问webapi是否有访问权限。在默认管道模型的Module里,有3个(authentication)和2个authorization的Module <httpModules>            <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" /...

qqqgg的专栏 5532

Windows系统3D Gaussian Splatting环境搭建全攻略:从零开始到成功运行

本文详细介绍了在Windows系统上搭建3D Gaussian Splatting环境的完整流程,包括CUDA 12.6安装、Anaconda环境配置、代码获取与依赖安装等关键步骤。针对Windows平台特有的环境配置问题,提供了实用的解决方案和常见错误排查方法,帮助开发者快速实现3D Gaussian Splatting的成功运行。

weixin_30832143的博客 454

ASP.NET里面的身份验证和授权(一)

在学习ASP.NET中,接触到了里面的身份验证和授权。我们就来具体总结一下这方面的知识。说到身份验证,我们以前的身份验证和授权都是基于Session来做的,都是从数据库中进行查找,比如说登陆的页面,我一登陆的时候输入用户名和密码,在数据库中查找,如果查找发现它是正确的,我们在Session中做一个标记,记录下来它是正确的。以后在访问其他页的时候,如果你有权限限制的话,每一页都判

不忘初心 5006

STM32F407 FreeRTOS+LVGL移植实战:从驱动适配到性能优化

本文详细介绍了在STM32F407开发板上移植FreeRTOS和LVGL的实战经验,涵盖硬件准备、驱动适配、性能优化等关键步骤。通过TFTLCD屏幕驱动优化、DMA加速和任务优先级调整,显著提升界面流畅度,为嵌入式GUI开发提供实用解决方案。

weixin_29190651的博客 632

通过PXE的方式实现Ubuntu 24.04 自动安装

之前都是通过PXE来自动化安装Redhat系列的,例如:Rocky9、Rocky10、CentOS7、银河麒麟 Kylin-V10、Kylin-V11、OpenEuler 24.03等。现在安装Ubuntu系列的跟红帽的不太一样,所以在这里介绍下。

邢宇宇的博客 1493

ASP.NET应用程序的安全方案(二)--授权

1.1. 授权概念    任何成功的应用程序安全策略的基础都是稳固的身份验证和授权手段,以及提供机密数据的保密性和完整性的安全通讯。    授权(authorization)过程负责控制通过了身份验证的客户端可以访问哪些资源,以及可以执行哪些操作。可访问的资源既包括文件、数据库等,还包括系统级的资源,如注册表,配置数据等。    许多WEB程序不是直接授权客户访问底层的资源,而是通过方法(me

wayuILY的专栏 821

调用IP核、移植/复制IP核以及解决IP核被锁住/红锁问题(基于vivado)

解决不同工程IP核之间复制调用以及IP核红锁问题,让开发更简单!

weixin_44502554的博客 1万+

ASP.NET应用程序的安全方案(一)—身份验证

摘要:本文ASP.NET应用程序身份验证的概念,介绍了各种身份验证模式并进行了比较,阐述了选择身份验证模式的机制,并给出了一种基于窗体身份验证模式的实现方法。 关键字:身份验证 authentication ASP.NET WEB应用 1.身份验证概念     任何成功的应用程序安全策略的基础都是稳固的身份验证和授权手段,以及提供机密数据的保密性和完整性的安全通讯。     身份验证(auth

bn007的专栏 1万+

CTransformers: 高效的Python语言模型绑定库

CTransformers是一个为C/C++实现的Transformer模型提供Python绑定的开源库。它基于GGML库构建,旨在为开发者提供一种高效且易用的方式来在Python中使用各种流行的语言模型。支持多种流行的语言模型,如GPT-2、LLaMA、Falcon等提供统一的简单API接口支持GPU加速(CUDA和Metal)与Hugging Face Transformers和LangChain集成支持流式输出和嵌入计算。

helloaiworld的博客 1268

Python爬虫博客:如何抓取时事新闻信息 —— 从各大新闻网站获取实时新闻数据

发送请求:向目标新闻网站发送 HTTP 请求,获取网页内容。解析网页:使用解析库(如)从网页中提取新闻标题、摘要、内容、发布时间等。绕过反爬虫机制:使用代理、设置请求头、模拟浏览器行为等策略绕过反爬虫技术。数据存储与清洗:将抓取的数据保存到本地文件或数据库中,并进行清洗,确保数据的可用性。在抓取过程中,我们还会面对很多实际问题,比如反爬虫技术、分页抓取、动态加载的内容等。接下来,我们将逐步介绍如何使用不同技术抓取静态和动态网页,并对抓取的内容进行处理。Scrapy。

2201_76125261的博客 2135

ASP.NET身份验证和授权

目录 一、安全模式 二、ASP.NET支持的四种验证 三、认证和授权 四、Form的常用属性 五、对密码进行加密 六、对用户进行授权 七、设置用户访问权限 八、设置特定的文件和目录 一、安全模式 安全模式的必要性: 构造特殊的链接地址,导致文件内的数据泄露 数据库泄露 安全防范的首要策略:所有的HTTP访问都要经过IIS,所以限制IIS的安全性是关键(只有管理员才能登录管...

Harrison的学习博客 2051

092、多sensor帧同步在环视系统中的实现——基于瑞芯微RK3588的PPS同步与曝光同步方案

摘要: 本文探讨了瑞芯微RK3588平台在360环视系统中实现多摄像头帧同步的技术方案。针对环视拼接常见的动态场景错位问题,提出了PPS同步与曝光同步相结合的解决方案。通过GPIO硬件触发实现四路摄像头同步曝光,配合I2C全局曝光控制,将时间误差控制在0.5ms内。文章详细解析了RK3588设备树配置、内核驱动实现中的关键细节,包括同步信号处理、寄存器原子写入等核心技术点,并分享了量产中遇到的温度漂移、信号完整性等实际问题及解决方法。最终通过硬件整形和电源优化,将同步抖动控制在±5μs以内,有效解决了动态拼

zzfmlxs的博客 33

ASP.NET 服务器控件授权

简介Microsoft .NET 框架有一个内置的可扩展授权结构,支持所有托管组件(包括业务对象、Windows 窗体控件和 ASP.NET 服务器控件)的设计时授权和运行时授权。本文就建立在该结构的基础上,以提供专门针对 ASP.NET 控件进行优化的授权实现,并且,您可以扩展该授权实现,以创建自定义授权方案,例如: •简单授权方案 - 只检查是否存在有效的许可数据,以决定是否启用控件。 •按每

whispers的专栏 1160

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ASP.NET Core 认证与授权[7]:动态授权

基于资源的授权 有些场景下,授权需要依赖于要访问的资源,例如:每个资源通常会有一个创建者属性,我们只允许该资源的创建者才可以对其进行编辑,删除等操作,这就无法通过[Authorize]特性来指定授权了。因为授权过滤器会在我们的应用代码,以及MVC的模型绑定之前执行,无法确定所访问的资源。此时,我们需要使用基于资源的授权,下面就来演示一下具体是如何操作的。 定义资源Requirement

dotNET跨平台 3909

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: ASP.NET应用程序的安全方案(一)—身份验证
下一篇: ASP.NET应用程序的安全方案(三)—安全通信
squallffx
博客等级 码龄22年 9粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值