【问题标题】:requiressl forms authenticationrequiressl 表单身份验证
【发布时间】:2010-12-13 18:07:13
【问题描述】:

基本上,我正在处理的应用程序有一堆参数,这些参数都由一个 xml 配置文件控制,其中包含运行应用程序(实时和开发)的每台机器的配置。我遇到的问题是,我希望能够控制基于表单的身份验证 requiressl 字段,以便在配置文件中指定此标志。

这应该会导致 requiressl 标志在实时环境中为真,并在那里强制执行 ssl 并创建一个安全的身份验证 cookie。对于开发环境,我不希望在所有开发机器上强制执行 ssl。

我不想操纵 web.config 文件来执行此操作。我希望我的应用程序代码能够读取 xml 配置并进行相应的设置。

我尝试过使用反射器进入密封表单验证类,发现requiressl属性只有get方法,没有set方法。

我也尝试过实现formsauthenticationconfiguration类,但无济于事。 - 我不确定我这样做是否正确。

任何帮助找到可能的解决方案将不胜感激。

亲切的问候,

古普雷特

尝试 1:

后来我试过这个:

PropertyInfo field = typeof (FormsAuthentication).GetProperty("RequireSSL");
field.SetValue(typeof(FormsAuthentication), true, null)

我收到一条错误消息说 "找不到属性集方法"

尝试 2: 已解决

typeof (FormsAuthentication).GetField("_RequireSSL", BindingFlags.Static | BindingFlags.NonPublic).SetValue(typeof(FormsAuthentication), Config.Secure);

【问题讨论】:

  • 您不想修改 web.config 文件的原因是什么?该文件的主要目的之一是为特定环境配置它,这正是您想要做的。

标签: c# forms reflection forms-authentication


【解决方案1】:

虽然不推荐,但您可以使用反射来修改私有字段(属性的后备存储)。

试试here

【讨论】:

    猜你喜欢
    • 2013-10-30
    • 1970-01-01
    • 2012-03-15
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多