如何在一个Trust Level=Medium的Web App中引用一个PInvoke的DLL?高手来帮忙!!
一个DLL,其中有PInvoke并且使用了System.Security.Permissions;。一个Web App调用了上述DLL的内容,1.1中运行期请求被CAS拒绝了,2.0里面编译都通不过。
哪位懂的指点!分可加!
问题点数:20、回复次数:2Top
1 楼Knight94(愚翁)回复于 2006-05-04 09:33:47 得分 20
你的aspnet用户的权限不够,加入administrators组后再试试。Top
2 楼JadyWang(两手抓,两手都要硬!)回复于 2006-05-04 14:11:34 得分 0
ASP_NET用户已经是admin组了。
Soryy,我遗漏了一些重点:
上述Web App被我设置成了<trust level="Medium" />.
随后我修改了系统的web_mediumTrust.config文件。加入了以下内容:
<SecurityClass Name="SecurityPermission" Description="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
……
……
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="ASP.Net">
…………
…………
<IPermission
class="SecurityPermission"
version="1"
Flags="Assertion, UnmanagedCode, Execution, ControlThread, ControlPrincipal, RemotingConfiguration"
/>
…………
…………
</PermissionSet>
主要是加入了UnmanagedCode的Flags,以允许调用PInvoke。但是1.1中实际运行得到以下结果:
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 无法获取执行权限。
源错误:
行 197: <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 198:
行 199: <add assembly="*"/>
行 200: </assemblies>
行 201: </compilation>
源文件: c:\windows\microsoft.net\framework\v1.1.4322\Config\machine.config 行: 199
Top




