是否可以验证用户的用户名+密码而无需登录?我知道通常的登录块看起来像这样:
if (!Page.IsValid)
return;
if (Membership.ValidateUser(UsernameInput.Text, PasswordInput.Text))
{
FormsAuthentication.RedirectFromLoginPage(UsernameInput.Text, false);
}
else { [...] }
使用 Membership.ValidateUser()调用设置响应的Cookie。
但是,在确认密码后,我还想执行一些额外的检查。 (例如,拉出该用户的失效日期。)
有没有办法在不使用页面失效后调用 FormsAuthentication.SignOut(); ?
答案 0 :(得分:3)
我认为你假设Membership.ValidateUser正在设置cookie是错误的。我不相信它会设置cookie。
FormsAuthentication.RedirectFromLoginPage设置了Cookie。
从关注点分离角度思考:
会员是您存储用户和密码的地方,但它实际上对网络或Cookie一无所知。
表单身份验证是一种让用户登录网站但不关心您如何确定该用户是否有效的技术。它所关心的只是拥有一个用户名和设置/读取cookie,这样用户就不必每次都登录 请求。