我有用户的,因为他们坐在一个页面上太久谁正在失去他们的数据,然后被要求重新登录我要做到以下几点:。如何拦截在ASP.net网页表单的认证请求
1)我不想将它们重定向到登录页面,而是要取消当前请求,并为用户提供一个弹出式对话框来登录。
2)当登录成功时,我希望用户被发送回他们的表单,所有数据都完好无损。 (如果请求可以通过而不将它们发送回该表单,则更好,但这是可选的)。
如何拦截这些验证请求,并向用户显示弹出式登录?
我正在使用ASP.net表单身份验证。
我有用户的,因为他们坐在一个页面上太久谁正在失去他们的数据,然后被要求重新登录我要做到以下几点:。如何拦截在ASP.net网页表单的认证请求
1)我不想将它们重定向到登录页面,而是要取消当前请求,并为用户提供一个弹出式对话框来登录。
2)当登录成功时,我希望用户被发送回他们的表单,所有数据都完好无损。 (如果请求可以通过而不将它们发送回该表单,则更好,但这是可选的)。
如何拦截这些验证请求,并向用户显示弹出式登录?
我正在使用ASP.net表单身份验证。
您可以在Global.asax中
上Application_AuthenticateRequest拦截此事件但是,你需要更具体的,您使用的是ASP.NET窗体身份验证?
补充:
试试这个,你是否使用了母版页回复我
在Global.asax中
void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (HttpContext.Current.User == null)
{
FormsAuthenticationTicket ticket = new
FormsAuthenticationTicket(1, "Anonymous", DateTime.Now, DateTime.Now.AddMinutes(30), false, "Anonymous");
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie =
new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
Response.Cookies.Add(cookie);
FormsIdentity id = new FormsIdentity(ticket);
System.Security.Principal.GenericPrincipal principal = new System.Security.Principal.GenericPrincipal(id, ticket.UserData.Split(new char[] { '|' }));
Context.User = principal;
}
}
在Web表单
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = Context.Request.Cookies[cookieName];
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
if (authTicket.UserData == "Anonymous")
{
//Throw the login popup
}
else
{
//Some Code
}
是的,我是。对不起,我补充说。你能否详细说明在该事件中如何拦截?我在global.asax中有一些未处理的异常处理,所以我已经使用了一些,但不是那个事件。 – MAW74656 2010-11-30 19:00:21
?当需要登录时,您可以重定向到那里,而不是单独的登录页面。在主页面的登录代码中,您决定是否重定向到正确的独立登录页面,或者使登录div可见为弹出窗口。
你是什么意思1)通过“取消请求”?一旦请求是服务器端,你不能取消它。 – 2010-11-30 23:34:52
你的权利,取消不是正确的词。我只是不希望表单数据被刷新。 – MAW74656 2010-12-01 14:42:55