配置不带Web的表单身份验证.配置
本文关键字:配置 表单 身份验证 Web | 更新日期: 2023-09-27 18:26:46
场景
我已经将MVC应用程序配置为以传统方式使用Forms身份验证。
<authentication mode="Forms">
<forms cookieless="UseCookies" slidingExpiration="true" timeout="1">
</forms>
</authentication>
但是,我允许客户端选择他的网络应用程序如何进行身份验证(URL令牌/Cookie),以及他的应用程序会话在到期前应该持续多久(超时)
问题
有没有一种方法可以让我通过代码做到这一点?我只通过web.config看到过它的实现?
我想从数据库中读取设置,并将其应用于Global.asax->OnApplicationStart()
看看WebActivatorEx。这里有一个关于其功能的好博客。要配置FormsAuthentication,您甚至必须在应用程序启动之前执行配置方法。WebActivatorEx将为您处理此问题。如果不想使用第三方程序包,可以在AssemblyInfo.cs类中指定此[assembly:PreApplicationStartMethod(typeof(AppConfig),"Configure")]。这里有另一个关于它的参考点。
[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);
}
}