问题标签 [code-access-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
253 浏览

c# - .Net 安全无限制权限问题

我对 .Net 安全的 Unrestricted 属性感到困惑,如此处所述,http: //msdn.microsoft.com/en-us/library/system.security.permissions.securityattribute.unrestricted.aspx我们可以给它完整或未满。

我的困惑是为了直截了当地理解许可,应该只有两种状态 - 授予和未授予,完整和非完整是什么意思?我的困惑是“无限制”这个词让我认为当无限制为假时,它意味着有限/部分许可(完全的反义词是部分/有限)。感谢有人能澄清。

提前谢谢,乔治

0 投票
1 回答
578 浏览

asp.net - PortalSiteMapprovider 代码访问安全要求

我正在使用 portalsitemapprovider 对象来创建我的导航服务器控件。

我已经在控件 CAS 中分配了共享点对象模型访问和模拟权限。但是,尽管如此,我无法检索站点地图根节点的子节点,它们只会返回错误。

如果我将 Web 应用程序更改为在完全信任下运行,我可以检索子节点。

因此,我的问题是需要哪些 CAS 策略才能完全访问站点地图提供程序对象中的数据,以及我为什么可以访问根节点而不是当前的子节点?

示例代码:

我的大会有以下 CAS 请求:

在部署清单中有适当的 IPermission 条目。部署 Web 应用程序后,web.config 按预期更新为 WSS_Custom 信任级别。

有任何想法吗?

谢谢

0 投票
3 回答
267 浏览

.net - 为什么在 localhost (127.0.0.1) 中运行的 CAS 演示代码无法识别安全区域?

我正在运行 MCTS 70-536 培训工具包第 11 章关于代码访问安全性的实验室。我正在运行 XP Pro。第一个实验室创建了一个程序集,该程序集检查不同的权限并在它们存在时报告一条消息。但是,当我运行它时,\\\127.0.0.1\c$\ListPermissions.exe它应该识别处于 Intranet 区域并使用 Intranet 权限集。但是,似乎授予了所有权限。这种行为对任何人来说都很熟悉吗?如果没有,有没有办法检查程序集从共享运行时认为它在哪个区域?如果这个问题的特定部分太模糊,请告诉我,我会尝试重新表述。

0 投票
4 回答
3333 浏览

c# - 代码访问安全性和 Sharepoint WebParts

我对代码访问安全性在 Sharepoint 中的工作方式有一个模糊的处理。

我开发了一个自定义 webpart 并在我的清单中设置了一个 CAS 策略

当它被部署到 Sharepoint 服务器上时,它被正确地转换为wss_custom_wss_minimaltrust.config并且大部分都可以工作。

为了让 WebPart 充分工作,但是我发现我需要在部署后手动修改wss_custom_wss_minimaltrust.config并在权限集上设置 Unrestricted="true"

这完全是因为我正在从 web 部件加载用户控件。我不相信有办法使用 CAS 来实现这一点,但我愿意被证明是错误的。

有没有办法在清单中设置一些东西,所以我不需要手动修复?

谢谢

0 投票
1 回答
272 浏览

asp.net-mvc - 为什么 ASP.NET MVC 使用代码访问安全性?

我有点好奇为什么 CAS 在 MVC 中被广泛使用。其中很多似乎也是压制消息。我可能误解了它,但我一直认为如果你完全信任你使用的代码/服务器,你就不需要使用 CAS。

0 投票
1 回答
665 浏览

.net - 在特殊文件夹上声明 FileIOPermission

我已经阅读了文档,搜索了互联网,如果不编写自定义 CAS 权限,我似乎无法完成我想做的事情。所以,这是我最后一次尝试。

我想在我的类上声明定义一个 FileIOPermission(属性),以要求对用户 MyDocuments 目录的权限。这个目录在所有操作系统上并不一致,一般在 .net 中通过 Path.GetFolderPath 访问(我想就是这样),传递一个 SpecialFolder 枚举值。FileIOPermissionAttribute 中是否有任何“令牌”语法或类似功能可以对运行时说 - “让我访问这个 SpecialFolder,无论它在这个系统上的什么地方”?

如果不是,我想我将不得不编写一个自定义的 Permission 对象,它基本上可以做到这一点......

谢谢!

0 投票
2 回答
1010 浏览

c# - 让我的 clickonce 应用部分信任值得吗?

我即将开始开发针对内部客户的 ClickOnce 应用程序,以便在组织的 Intranet 上使用。我想简化设置过程,所以我认为开发部分信任的应用程序是个好主意,但现在我不太确定。

用户特别要求的一件事是(归结为)a TextBoxwith Cue Text。目前提供此功能的最简单方法是使用TextBox包含 CueText 功能作为属性的简单子类。cuetext 功能是通过 PInvoke 调用来完成的SendMessage()

“啊哈!我需要SecurityPermission.UnmanagedCode。” 据我所知,默认的 Intranet 区域安全包括SecurityPermission权限,所以我尝试运行它,它在调用UpdateCueText(). 我什至可以检查SecurityExceptionb/c 上的属性,每次尝试评估SecurityException属性都会引发另一个 uninspectable SecurityException

我尝试标准修改:

仍然没有运气。但是当我进入项目属性中的安全设置页面并将SecurityPermission设置为“Included”而不是“Zone Default”时,我什至不需要手动断言,一切都会发生。但是,当然,我假设客户仍然会收到海拔提示。

是否可以在部分信任环境中做我想做的事情? 我开始怀疑这不是 b/c 它甚至没有意义。任意部分受信任的代码不应该只调用 SendMessage,对吗?我开始意识到我一直在试图规避安全措施,而不是在其中工作。

如果是这样的话,是否值得以部分信任为优先来开发这个应用程序或者我应该让自己在设置时接受提升提示以创建一个完全受信任的应用程序,以便安排时间并满足用户界面要求?

0 投票
7 回答
2583 浏览

c# - 如何限制将项目添加到列表?

我有一个名为Person包含属性、父级和子级列表的类。

我希望每个人都只使用AddChildMethod 来添加孩子,而不是List.Addmethod ,那么我该如何限制使用呢?

0 投票
8 回答
4235 浏览

.net - “代码访问安全”是否在任何现实世界中使用?

警告:

自从提出此问题以来,较新版本的 .Net 和 .Net 核心已删除和/或更改了“代码访问安全性”(CAS)。

原始问题:

我正在准备70-536 .NET Framework - 应用程序开发基础考试,因为我已经编程 .net 很多年了,这应该不难!

但是我必须了解“代码访问安全性”(CAS),因为我从来没有需要使用或配置它,我想知道是否有其他人找到了它的实际用途?

请提供您何时使用 CAS 的示例,并且它已成为解决方案的一部分,而不是问题的一部分。

(到目前为止,其他所有事情都与我多年 .NET 编程中必须完成的任务有关)


相关问题:


到目前为止的结果。

  • 当您托管第 3 方代码时,CAS 很有用。例如,网络托管公司可以使用它来阻止客户的 Asp.net 代码对服务器造成损害。(当 .NET 被用作 VBA 的替代品时,Office 也会使用它)

  • 到目前为止,它在 Microsoft 应用程序之外使用的唯一详细示例是:

    我最近做的一个项目有类似的东西:允许用户上传一个库,并测试它的性能(“谁创造了最好的算法”)。不用说,我们非常需要 CAS。

  • CAS 似乎对获得 JITDC 认证很有用,就像美国国防部一样,但是我不知道 CAS 是否有任何实际价值,或者它是否只是打勾。

(如果您需要绕过使用 CAS 的主机并且您在它们的机器上拥有管理员权限,您可以将您的程序集放在 GAC 中。)

展望未来,CAS 在 .net 4 中稍微不那么复杂


至少看起来新的微软考试不会有包含 CAS 的“基础”考试。我不知道它是否会进入新的 Winforms/WPF 考试。

0 投票
2 回答
12721 浏览

asp.net - SecurityException: 请求 AspNetHostingPermission 类型的权限失败

设置一个新的开发工作站,当我从 Visual Studio 2008 运行 ASP.NET (MVC) 应用程序时,我得到一个 SecurityException。任何想法可能是什么问题?

我正在通过 SMB 访问数据文件(它是作为 Z 挂载的共享文件:),我通过运行完全信任它

完整的追溯是:

“/”应用程序中的服务器错误。

安全异常

说明:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。

异常详细信息:
System.Security.SecurityException:请求“System.Web.AspNetHostingPermission,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[SecurityException:请求类型'System.Web.AspNetHostingPermission,System,Version = 2.0.0.0,Culture = Neutral,PublicKeyToken = b77a5c561934e089'的权限失败。]
System.Reflection.Assembly._GetType(字符串名称,布尔 throwOnError,布尔ignoreCase)+0
System.Reflection.Assembly.GetType(字符串名称,布尔 throwOnError,布尔 ignoreCase)+42
System.Web.UI.Util.GetTypeFromAssemblies(ICollection 程序集,字符串 typeName,布尔 ignoreCase)+145
System.Web.UI。 TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) +73
System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) +111
System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData)+279

版本信息: Microsoft .NET Framework 版本:2.0.50727.4927;ASP.NET 版本:2.0.50727.4927