gpt4 book ai didi

silverlight - 在 Silverlight 中使用安全关键构造函数子类化透明类型的安全规则

转载 作者:行者123 更新时间:2023-12-04 03:19:12 24 4
gpt4 key购买 nike

在 Silverlight (v4.0) 安全模型中,Shawn Farkas says从类型派生:

[...] we see that application types may only derive from other application types or transparent platform types. (*)

*部分是:

(*) This true in 99.9% case. There is another rule about the visibility of the default constructor of a class (which we'll get into next week when we dig deeper into the security model), which also requires that the base class' default constructor (if it has one), must be transparent as well. Practically speaking, you're not generally going to find interesting transparent types in the platform which do not also have transparent default constructors, so this rule doesn't normally come into play.

但是,有一种有趣的透明类型没有透明的默认构造函数 - WebClient 类。还有一个很好的理由想要对其进行子类化 - 覆盖 GetWebRequest 以提供对 cookie 的支持。

作为测试,我在有和没有构造函数属性的情况下都尝试了以下...

public class MyWebClient : WebClient
{
[SecuritySafeCritical] // matches the attribute on the base class ctor
public MyWebClient() { }
}

...但是无论哪种方式都会出现以下错误:

Inheritance security rules violated while overriding member: 'MyWebClient..ctor()'. Security accessibility of the overriding method must match the security accessibility of the method being overriden.

在我看来,这就是他提到的 0.1% 的情况。不幸的是,据我所知,接下来的帖子从未详细说明这里的规则。因此我有两个问题:

  1. 有人知道这个 0.1% 规则是什么吗?
  2. 给定 1,是否可以从 Silverlight 4 中的 WebClient 派生?

最佳答案

我对 this question 的回答涵盖您的第 1 部分。

对 2 的回答是否定的,但是对于 WebClient,如果您有理由这样做,您可以创建自己的。

关于silverlight - 在 Silverlight 中使用安全关键构造函数子类化透明类型的安全规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com