asp.net - 中等信任度的 LDAP

标签 asp.net interop directoryservices medium-trust

我有一个包含一个网站和多个项目的解决方案。
这些项目都有AllowPartiallyTrustedCallers属性并且是强命名的。

该网站在完全信任的情况下运行。但是,将信任设置为中等后,我得到 System.Security.SecurityException: Request failed. 我一浏览该网站就出错。

在我的项目中,我调用 LogOnUser ,以及多次调用各种System.DirectoryServices.AccountManagement方法。

此站点可以在中等信任度下运行吗?还是我必须完全信任所有 LDAP 调用?

正如我所提到的,我已经设置了 AllowPartiallyTrustedCallers所有项目的属性。不知道还能做什么。
另外,我不知道错误是在哪里生成的。服务器上的事件日志与此 SecurityException 没有任何关系。有什么方法可以找出错误位置,以便我可以尝试重写一些代码吗?

[在 Win2k8R2 上运行 .NET 4.0]

最佳答案

LogOnUser与所有 P/Invoke 调用一样,需要 SecurityPermissionUnmanagedCode许可标志。 System.DirectoryServices.AccountManagement需要无限制DirectoryServicesPermission 。默认情况下,这两种权限都不会授予中等信任的 ASP.NET 应用程序。

AllowPartiallyTrustedCallers属性允许部分信任程序集使用完全信任程序集。在您的情况下,该属性无效,因为 bin 文件夹中的所有程序集都加载到部分信任应用程序域中。

如果您的应用程序需要在中等信任下运行,并且您能够将程序集安装到 GAC 中,那么您可以创建一个包含需要额外权限的代码的程序集,并使用 AllowPartiallyTrustedCallers 标记该程序集。 ,并将其放入 GAC 中。您还需要Assert抑制仍将发生的堆栈遍历所需的权限。

有关详细信息,请参阅Code Access Security in ASP.NET 4 Applications MSDN 库中的主题。

关于asp.net - 中等信任度的 LDAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10840199/

相关文章:

c# - 在 global.asax 中启用 web api 属性路由

c# - 在具有母版页的页面上的何处添加链接标签?

asp.net - 如何在 ASP.NET 中基于复选框访问 GridView 行的评估器

interop - 通过互操作同时支持 Outlook 2003 和 2007

active-directory - Azure 应用服务 Active Directory 身份验证访问被拒绝

active-directory - 访问创建用户 : Exception 0000202B: RefErr: DSID-031007EF, 数据 0、1 个访问点时出现重大事件异常”[扩展错误 8235]

javascript - 转发器定义将从设计器中的嵌套转发器中删除

c# - 在 Microsoft Word 文档中顺畅/直观地重复单词

c# - 我可以根据 .NET Core 中的运行时标识符定义常量吗?

.net - FindByIdentity - 性能差异