配置.NET 的编码访问安全

[复制链接]
查看11 | 回复0 | 2006-8-10 14:33:00 | 显示全部楼层 |阅读模式
[B]设置许可权限并对.NET的各种不同的设置进行试验。[/B]
我将讲述如何配置.NET的编码访问安全(code-access security),给同一个区域设置不同的许可权限,并对.NET的各种不同设置进行试验。你可以创建一个Windows Forms应用程序,在线使用它,并查看所运用的安全策略会对它有何影响。
[B]初始配置[/B]
假设你运用的是.NET 1.1及更高版本的缺省的安全配置。缺省的安全策略将Internet的许可权限授予来自Internet的代码。为了验证缺省策略,打开.NET Configuration工具,展开Runtime Security Policy文件夹及该文件夹中的Machine目录。选取code group中的Internet Zone,点击鼠标右键,从弹出的上下文菜单中选择Properties。
在弹出的Internet_Zone Properties对话框中,选择Permission Set TAB,并确信其设置为Internet(或者如有必要,将它设置到Internet)。
[B]在线运行Windows Forms应用程序[/B]
创建一个叫做WinFormApp的新的Windows Forms应用程序。给这个form添加几个控件(不需要任何特殊的逻辑)。运行WinFormApp,确保一切正常。在某个目录下(如C:\Temp)创建一个叫做WebFolder的新的文件夹。将WinFormApp.exe文件拷贝到WebFolder文件夹。打开WebFolder文件夹属性对话框,选择Web Sharing TAB,然后点击Share This Folder单选按钮来打开Edit Alias对话框。将Access permissions设置为 Read,Application permissions设置为Scripts。点击OK以及Web Sharing的OK。打开Internet Explorer,输入下面的URL:
http://localhost/WebFolder/WinFormApp.exe
该Windows Forms应用程序就可以被下载并运行了。
[B]安全许可权限配置[/B]
通过刚才输入的URL,WinFormApp就可以从Local Intranet区域运行了。Code group中LocalIntranet_Zone的缺省配置将LocalIntranet许可权限授予来自Intranet的代码。修改code group中的LocalIntranet_Zone,运用permission set中的Nothing选项,然后再次导航到http://localhost/WebFolder/WinFo ... 崾痉?惺淙敫妹?睿?/a>
\\\\WebFolder\WinFormApp.exe
同样,运行会失败。
下面,我们通过导航到你自己的IP,来尝试将共享Web资源作为一个Internet站点来访问:
http://127.0.0.1/WebFolder/WinFormApp.exe
因为来自Internet区域的代码被授予了Internet权限,所以它可以运行,但有一些局限——只具有Internet授予的权限。因此,.NET在运行应用程序时会通知用户一些功能可能不能用。
配置code group中的Internet_Zone,运用许可权限设置中的Execution选项。这种设置没有任何UI权限,所以.NET会拒绝运行来自Internet区域的Windows Forms应用程序(你可以试一试!)。
最后,从Runtime Security策略文件夹的上下文菜单中点击Reset All,将所有的安全策略重新设置到其缺省值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行