gpt4 book ai didi

asp.net - 如何拦截 ASP.net webform 中的身份验证请求

转载 作者:行者123 更新时间:2023-12-02 02:29:30 28 4
gpt4 key购买 nike

我有一些用户因为在页面上停留时间过长而丢失了数据,然后被要求重新登录。我想执行以下操作:

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;
}

}

在网络表单中

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

}

关于asp.net - 如何拦截 ASP.net webform 中的身份验证请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com