我试图为我的程序集设置完全信任特定的.NET信任级别(此程序集将在SharePoint中的某些Web应用程序中运行)。我知道这可以使用CasPol.exe,但我想只使用API而不是使用其他可执行文件。
更多详情:
如果我像这样编辑xml配置文件:
<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust">
IMembershipCondition class="UrlMembershipCondition" version="1"
Url="C:\PathToMyAssembly\MyAssembly.dll" />
</CodeGroup>
然后回收应用程序池,我可以看到当我的dll加载到使用&#34; WSS_Minimal&#34;信任等级,我的集会得到充分信任。
如何仅使用C#API重复此方法?
有3个主要项目 -
似乎使用这个API是正确的地方,但是当我列举政策时,我从来没有找到我想要的xml -
var levelEnumerator = SecurityManager.PolicyHierarchy();
while (levelEnumerator.MoveNext())
{
}
答案 0 :(得分:0)
我建议坚持使用caspol.exe。并非该工具提供的所有功能都在.NET框架中公开,因此您最好选择通过C#代码或PowerShell调用caspol.exe(如果您想要自动化它)。
如果它是您正在开发的自定义DLL,您可以创建BAT文件或PowerShell文件以将文件复制到所需位置,运行caspol.exe授予对程序集的完全信任。您还可以通过使用-resolveperm标志调用CasPol来添加检查,并解析输出以检查程序集是否已具有正确的安全性。然后,可以从Visual Studio将此脚本作为Post Build命令调用,以进一步自动化该过程。
答案 1 :(得分:0)
您可以尝试通过SPWebConfigModification
类修改web.config。并设置fullTrustAssemblies
部分: