gpt4 book ai didi

c# - 将服务器端和客户端身份验证与 WebAPI 相结合

转载 作者:太空狗 更新时间:2023-10-29 23:53:19 29 4
gpt4 key购买 nike

我有一个遗留的 ASP.NET webforms 应用程序,用户通过在服务器端处理的表单登录。如果输入的用户名 + 密码与数据库中的凭据匹配,我会在 session 中设置一些值(例如,当前用户 ID),然后执行 Response.Redirect。我还为“下次访问时自动重新登录”功能创建了一个 HttpCookie。

目前,我还在该 Web 应用程序中添加 WebApi 支持。我已经设法实现 token 身份验证,允许我在客户端登录。

如何结合使用这两种身份验证方法?我希望用户输入一次他的凭据,在服务器端和客户端进行身份验证,并在身份验证后将用户重定向到另一个页面。

最佳答案

以下代码将创建一个 cookie 以保持用户登录状态。

// login etc
if (chkRemember.Checked)
{
// calculate the total number of minutes in 20 days to use as the time out.
int timeout = (int)TimeSpan.FromDays(30).TotalMinutes;

// create an authentication ticket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(txtUserName.Text, true, timeout);

// Encrypt the ticket
string encrptedTicked = FormsAuthentication.Encrypt(ticket);

// create the cookie for the ticket, and put the ticket inside
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrptedTicked);

// give cookie and ticket same expiration
cookie.Expires = ticket.Expiration;

// Attach cookie to current response. it will now to the client and then back to the webserver with every request
HttpContext.Current.Response.Cookies.Set(cookie);

// send the user to the originally requested page.
string requestedPage = FormsAuthentication.GetRedirectUrl(txtUserName.Text, false);
Response.Redirect(requestedPage, true);
}
else
{
// login without saving cookie to client
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false);
}

关于c# - 将服务器端和客户端身份验证与 WebAPI 相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44216596/

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