我有用戶的,因爲他們坐在一個頁面上太久誰正在失去他們的數據,然後被要求重新登錄我要做到以下幾點:。如何攔截在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