Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET 2.0从控件强制SSL_C#_Asp.net_.net_Ssl - Fatal编程技术网

C# ASP.NET 2.0从控件强制SSL

C# ASP.NET 2.0从控件强制SSL,c#,asp.net,.net,ssl,C#,Asp.net,.net,Ssl,首先,我想说的是,我提出的任何解决方案都必须适用于.NET2.0,因为这是我的项目所针对的框架 我有一个ASP.NET网站,我使用代码强制页面进入SSL或不进入SSL,而不是web.config。基本上,每个页面都被强制进入非SSL,除非页面继承了我创建的接口,该接口允许页面定义强制SSL的属性。我有一个在页面加载时运行的方法,它查看页面是否继承此接口,然后检查此属性的值。这对我们来说很好,但我想将这种功能扩展到自定义服务器或用户控件 我最初只考虑让控件使用相同的接口,但我很快发现递归查看所有页

首先,我想说的是,我提出的任何解决方案都必须适用于.NET2.0,因为这是我的项目所针对的框架

我有一个ASP.NET网站,我使用代码强制页面进入SSL或不进入SSL,而不是web.config。基本上,每个页面都被强制进入非SSL,除非页面继承了我创建的接口,该接口允许页面定义强制SSL的属性。我有一个在页面加载时运行的方法,它查看页面是否继承此接口,然后检查此属性的值。这对我们来说很好,但我想将这种功能扩展到自定义服务器或用户控件

我最初只考虑让控件使用相同的接口,但我很快发现递归查看所有页面的控件集合非常耗时,如果嵌套太深,可能会导致堆栈溢出

接下来,我尝试创建一个属性,我可以用它来修饰控件并在属性的CTOR中运行一些逻辑,但是失败了,因为我无法始终强制属性的CTOR运行,因为我必须在控件上调用GetCustomAttributes()方法,这会让我回到递归和那里的问题

有人知道我可以用接口、属性或类似的东西“装饰”一个类,并将其绑定到某种逻辑中,在.NET2.0中实例化该类时,我可以一致地运行这种逻辑吗?我想我已经确认我可以使用页面的Items集合(或HttpContext的Items集合)来存储一个“ForceSSL”值,然后在页面加载时查找该值,并根据需要重写URL。我想弄清楚的诀窍是如何简单地触发它

我意识到我可以有一个像Organization.global.Utilities.ForceSSL()这样的全局方法来做这类事情,但我希望有某种“装饰”类型的模式可以用来调用这个逻辑/方法


谢谢您的关注。

让控件检查它的父页面怎么样

this.Page
然后确定它是否属于需要SSL的类型,然后重定向、强制403等


这对于控制tho来说是一种奇怪的行为

让控件检查它的父页面怎么样

this.Page
然后确定它是否属于需要SSL的类型,然后重定向、强制403等

这对于控制tho来说是一种奇怪的行为