FormsAuthentication滑动过期

时间:2014-04-10 14:12:57

标签: c# asp.net-mvc formsauthentication

我有一个使用FormsAuthentication的MVC 5应用程序。 在FormsAuthentication_OnAuthenticate()函数中,我使用当前用户权限创建一个新的GenericIdentity。

protected void FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs e)
{
    if (FormsAuthentication.CookiesSupported)
            {
                var userInfo = AuthenticationHelper.GetUserInfo(Request.Cookies);
                if (userInfo != null)
                {
                    e.User = new GenericPrincipal(new GenericIdentity(userInfo.Username,"Forms"),userInfo.RightsStrings);
                }
            }
}

FormsAuthentication的配置是:

<authentication mode="Forms">
    <forms timeout="2" loginUrl="~/Home/Login" slidingExpiration="true" cookieless="UseCookies"></forms>
</authentication>

当我分配新的GenericPrincipal时,slidingExpiration选项不起作用。 如果我评论滑动过期有效,但我不能使用[Authorize(Roles = "Role")]语法。

我怎样才能完成两者?

0 个答案:

没有答案