0
login.aspxでユーザー認証チケットの有効期限を過ぎたいasp.net login control - ユーザー認証チケットの有効期限を設定する
このコードは、1分後にユーザーがまだ認証されているため、正常に動作しません。
private int loginExpire = 1;
protected void Login_LoggedIn(object sender, EventArgs e)
{
HttpCookie authCookie = Response.Cookies[FormsAuthentication.FormsCookieName];
FormsAuthenticationTicket oldAuthTicket = FormsAuthentication.Decrypt(authCookie.Value);
var newAuthTicket = new FormsAuthenticationTicket(
oldAuthTicket.Version,
oldAuthTicket.Name,
DateTime.Now,
DateTime.Now.Add
(TimeSpan.FromMinutes(loginExpire)),
oldAuthTicket.IsPersistent,
oldAuthTicket.UserData,
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(newAuthTicket);
authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
HttpContext.Current.Response.Cookies.Set(authCookie);
FormsAuthentication.RedirectFromLoginPage(GetDestinationPage(lgUserLogin.UserName), false);
}
のweb.config
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" requireSSL="false" timeout="1" slidingExpiration="true" protection="All"/>
</authentication>
あなたのケースではLogin_LoggedInイベントを処理しますか? – Alexandre
はい、実質的にそれを減らすことができます:if(FormsContext.UserName、LoginControl.Password){FormsAuthentication.RedirectFromLoginPage(LoginControl.UserName、false); } –
あなたはそれを真実にしておくことができますが、その場合にはタイムアウトをさらに待ってからページを更新するか、ポストバックを発生させる何らかのアクションを実行する必要があります –