我与ASP.NET MVC应用程序会话的工作,努力实现与使用OWIN“UseCookieAuthentication
”和“UseWsFederationAuthentication
” ADFS认证。
ADFS身份验证,只有当我在web.config中设置身份验证模式=“无”工程
的问题是,当我设置认证模式=“无”,并且例如,会话超时= 2分钟,该会话在登录2分钟后结束。可调过期,无法正常工作,并且用户被注销,即使在使用该网站。
当我设置身份验证模式=“形式”会议behavies perfectlly和用户被注销仅2分钟最后的请求后已过,但ADFS验证停止工作。
是否有人知道一些关于这个问题?
该ADFS服务是由外部合作伙伴,我不知道该配置。
这里是我的代码:
<sessionState timeout="2" cookieName="MB_SEID"></sessionState>
<authentication mode="None">
<forms loginUrl="~/Home/Index" defaultUrl="/" path="/" name="UID" timeout="2" protection="All" slidingExpiration="true" enableCrossAppRedirects="true" />
</authentication>
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ApplicationCookie);
app.UseCookieAuthentication(new CookieAuthenticationOptions {
CookieManager = new SystemWebCookieManager(),
SlidingExpiration = true,
ExpireTimeSpan = TimeSpan.FromMinutes((double)sessionTimeout),
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
CookieName = CookieAuthenticationDefaults.CookiePrefix + DefaultAuthenticationTypes.ApplicationCookie,
Provider = new CookieAuthenticationProvider
{
OnResponseSignIn = ctx =>
{
ctx.Options.ExpireTimeSpan = TimeSpan.FromMinutes((double)sessionTimeout);
ctx.Options.SlidingExpiration = true;
}
}
});
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata,
Wreply = replay,
AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,
SignInAsAuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
UseTokenLifetime = false // set to false to manage session with the cookie middleware
});
}
我的配置是好的。问题是内部会话管理未知的我。谢谢大家的帮助。