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

这将导致requiresl标志在实时环境中为true,并在其中强制执行ssl并创建一个安全的身份验证cookie。对于开发环境,我不希望在所有开发计算机上强制执行ssl。

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

我尝试使用反射器进入密封的表单身份验证类,并发现requiresl属性仅具有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);

最佳答案

尽管不建议这样做,但是您可以使用反射来修改私有字段(该属性的后备存储)。

尝试here

关于c# - requiresl表单例份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4431969/

10-13 05:57