C# requiressl表单身份验证

C# requiressl表单身份验证,c#,forms,reflection,forms-authentication,C#,Forms,Reflection,Forms Authentication,基本上,我正在处理的应用程序有一组参数,这些参数都由一个xml配置文件控制,该文件包含运行该应用程序的每台机器(live和dev)的配置。我的问题是,我希望能够控制基于表单的身份验证requiressl字段,以便在配置文件中指定此标志 这将导致requiressl标志在实时环境中为true,并通过强制ssl和创建安全的身份验证cookie实现。对于dev环境,我不希望在所有dev机器上强制使用ssl 我不想操纵web.config文件来执行此操作。我希望我的应用程序代码能够读入xml配置并相应地

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

这将导致requiressl标志在实时环境中为true,并通过强制ssl和创建安全的身份验证cookie实现。对于dev环境,我不希望在所有dev机器上强制使用ssl

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

我曾尝试使用reflector进入密封的formsauthentication类,发现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文件的原因是什么?该文件的一个主要用途是为特定环境配置它,这听起来正是您想要做的。