gpt4 book ai didi

c# - ASP.NET 2.0 从控件强制使用 SSL

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:04 25 4
gpt4 key购买 nike

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

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

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

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

在 .NET 2.0 中,有谁知道我可以用接口(interface)、属性等“装饰”类并将其绑定(bind)到我可以在实例化类时始终如一地运行的某些逻辑中的方法吗?我想我已经确认我可以使用页面的项目集合(或 HttpContext 的项目集合)来存储一个“ForceSSL”值,然后我可以在页面加载时查找该值并根据需要重写 URL。我想弄清楚的技巧是如何简单地触发它。

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

感谢您对此进行调查。

最佳答案

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

this.Page

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

这对于控件来说是一种奇怪的行为。

关于c# - ASP.NET 2.0 从控件强制使用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39981975/

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