requiressl表单身份验证

时间:2010-12-13 18:07:13

标签: c# forms reflection forms-authentication

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

这应该导致requiressl标志在实时环境中为true,并通过强制执行ssl并创建安全的auth cookie。对于开发环境,我不希望在所有开发机器上强制执行ssl。

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

我尝试使用reflect进入密封的formsauthentication类,并且发现requiressl属性只有get方法,没有set方法。

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

任何寻求可能解决方案的帮助都将非常感激。

亲切的问候,

Gurpreet

尝试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);

1 个答案:

答案 0 :(得分:1)

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

尝试here