向WCF新增代码访问安全性,第2部分

目录

.NET Framework 3.5 中的宿主端 CAS

部分受信的服务

App Domain Host

实现 AppDomainHost

部分受信的宿主

结构化宿主端安全要求

实现结构化宿主要求

AppDomainHost 的其他方面

在 2008 年 4 月刊的这一专栏中,我讨论了缺少对代码访问安全性 (CAS) 足够支持的情形,以及向 Windows Communication Foundation (WCF) 添 加合适 CAS 支持的动机。然后展示了如何在客户端添加该支持,从而使部分受 信的客户端可以调用 WCF 服务,并且它们均不会损害安全性或 WCF 编程模型( 如需四月专栏,请参阅 msdn.microsoft.com/magazine/cc500644)。

本期我将接着向您介绍部分受信的服务和宿主,帮您形成完整的印象。与客 户端一样,我讲解的内容不仅包含解决方案的机制,还有它的形成方法和构思过 程。您还将了解到一些 WCF 和 Microsoft .NET Framework 的高级编程技 术。

.NET Framework 3.5 中的宿主端 CAS

在 .NET Framework 3.5 中,WCF 仅允许部分受信的代码通过 BasicHttpBinding、WSHttpBinding 和 WebHttpBinding 绑定托管服务,并且不 提供任何安全性或仅提供传输安全性。另外,对于 WSHttpBinding,消息安全性 、可靠的消息传递以及事务等都被禁用。所有启用部分受信的绑定都必须使用文 本编码。在部分受信模式下运行的服务无法使用其他功能(如诊断和性能计数器 )。

由绑定负责强制执行某些支持功能。每个非 HTTP 绑定都会主动要求服务宿 主的完全信任。适用 HTTP 绑定本身不需要完全信任;而是需要根据使用环境确 定所需的权限(如图 1 所示)。

图 1 适用 HTTP 绑定所需的宿主权限

方案 权限
Basic、Web 和 WS – 没有安全性或传输安全性 执行和基础结构安全权限;接受 URI 调用的 Web 权限。
前面提到的绑定,且在单独程序集中包含内部服务类型 不受限制的反射。
前面提到的绑定,且包含通过身份验证的调用 用于控制主体的安全权限。
时间: 2024-12-30 13:07:20

向WCF新增代码访问安全性,第2部分的相关文章

WCF中的代码访问安全性,第1部分

目录 CAS 概览 客户端 CAS 部分信任的客户端 客户端请求 原始 WCF 请求 PartialTrustClientBase<T> 的结构化请求 分析 Invoke 的请求 实现客户端结构化请求 在Microsoft .NET Framework 1.0 中引入的代码访问安全性 (CAS) 可 能是 .NET 与非托管代码相比唯一有所区别的功能.CAS 内置于 .NET Framework 的每个结构中,它影响托管代码中的每项操作,这些是非托管代码永 远无法做到的. Windows Co

ASP.NET 代码访问安全性

asp.net|安全|安全性|访问  使用 ASP.NET 来承载多个 Web 站点的一个主要优点是:公共语言运行库支持代码访问安全,可帮助保护服务器应用程序的安全.根据关于代码来源的证据(例如带有强名称的程序集或源的 URL 等证据),代码被分配到安全区域分类中.如果不能为安装在公共服务器上的各个互不相关的应用程序配置安全机制,那么 ASP.NET 页中属于一个应用程序的代码将能够读取另一个应用程序中的文件(例如 Web.config 文件).以完全信任方式运行的应用程序只受操作系统帐户的限制

用代码访问InfoPath表单内容

表单是MOSS的一个很重要的特性,特别是有了Form Services的支持后,我们在做表单解决方案的时候,经常会用到Infopath, 那么如何使用代码访问保存于SharePoint表单库中的InfoPath表单的内容,是必需知道的. 总结了下,有如下3种方式可实现代码对表单内容的访问: 1.提升表单模板属性 2.通过XmlDocument 对象对表单文件操作 3.反序列化表单数据架构 接下来,分别简单谈谈这3种方法的简单实现步骤 第一种方式: 提升表单模板属性表单操作: 在设计完表单模板,执

jQuery调用RESTful WCF示例代码

 本篇文章主要介绍了jQuery调用RESTful WCF示例代码(GET方法/POST方法),需要的朋友可以过来参考下,希望对大家有所帮助 不废话了,直奔主题吧   wcf端:   近几年比较流行restful,为了能让ajax调用,同时也为了支持restful风格的uri,在创建一个Ajax-enabled Wcf Service后,必须手动修改svc文件,指定Factory,即:   <%@ ServiceHost Language="C#" Debug="tru

关于wcf跨机器访问的问题

在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言! 好了废话不多说了,正文如下: 1.设置好wcf的服务端security mode要设置为None,如 <services> <service behaviorConfiguration="metadataBehavior" name="Services.CalculatorService&qu

ASP.NET代码访问安全(Code Access Security)

代码访问安全(Code Access Security),顾名思义,是用来限制代码的.它能限制代码能否被执行,进而来限制ASP.NET程序能执行什么样的操作.比如CAS限制你不允许使用FileIOPermission,那么ASP.NET程序便不能进行IO操作.同样,如果限制你使用SqlClientPermission,ASP.NET程序便不能进行SQL Server的操作. CAS默认定义了5个不同的level,它们是Full,High,Medium,Low 以及Minimal.从Full到Mi

was新增servlet访问不到

问题描述 was新增servlet访问不到 项目生产环境通过F5集群ihs请求was应用,现在我在项目中新增一个servlet,在web.xml中进行了配置,然后整个项目打包发布到was上,项目其他功能及页面都正常,唯独新增的这个servlet访问不到,报HTTP404!!!测试环境没有F5,也是was服务器,发布后,正常访问,没有问题!求解^^ 解决方案 首先你本地调试通过了吗?其次was你重启过了吗? 解决方案二: 本地测试通过,WAS也重启过!

Android4.4新增函数访问外部存储_Android

在Android 4.4系统中,外置存储卡(SD卡)被称为二级外部存储设备(secondary storage),应用程序已无法往外置存储卡(SD卡)写入数据,并且WRITE_EXTERNAL_STORAGE只为设备上的主要外部存储(primary storage)授予写权限,对于其他外部存储,其上的文件属性都改为基于文件夹结构,应用无需获取WRITE_EXTERNAL_STORAGE权限,但可以管理与自己包名相关的文件夹. 举例来说,如果应用的包名是com.example.externalst

c# 4 0-利用c#代码 访问注册表 不能向注册表里修改数据 求助

问题描述 利用c#代码 访问注册表 不能向注册表里修改数据 求助 我要实现的是通过对注册表的修改 实现隐藏和显示桌面图标 谢谢各位上面的代码就不写了 主要的是 try { int i = 1; RegistryKey key = Registry.CurrentUser; RegistryKey hide = key.OpenSubKey(@""SoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced"" true