不使用Web.Config配置表单身份验证

时间:2014-10-16 07:10:27

标签: c# asp.net-mvc web-config forms-authentication global-asax

方案


我已将MVC应用程序配置为以传统方式使用Forms身份验证。

<authentication mode="Forms">
  <forms cookieless="UseCookies" slidingExpiration="true" timeout="1">
  </forms>
</authentication>

但是,我允许客户端选择他的Web应用程序进行身份验证的方式(URL令牌/ Cookie),以及他的应用程序会话在到期之前应该持续多长时间(超时)

问题


我有办法通过代码执行此操作吗?我只通过web.config看到了这个实现?

我想从数据库中读取设置并将它们应用于Global.asax - &gt; OnApplicationStart()

1 个答案:

答案 0 :(得分:3)

看看WebActivatorEx。关于它的功能,这是一个很好的blog。要配置FormsAuthentication,您必须在应用程序启动之前执行配置方法。 WebActivatorEx将为您处理。如果您不想使用第三方软件包,可以在AssemblyInfo.cs类中指定此 [assembly:PreApplicationStartMethod(typeof(AppConfig),“Configure”)] Here's another point of reference that talks about it.

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(AppConfig), "Configure")]
public static class AppConfig
{
    public static void Configure()
    {
        var settings = new NameValueCollection();
        settings.Add("defaultUrl", "~/Account/Default.aspx");
        settings.Add("loginUrl", "~/Default.aspx");
        settings.Add("timeout", "10");
        FormsAuthentication.EnableFormsAuthentication(settings);
    }
}