【发布时间】: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