目前,在使用内置 asp.net 会员资格提供程序对用户进行身份验证时,我面临着一个安全问题。
问题是:我使用用户 AAA 进行身份验证,之后,我对不同计算机上的用户 BBB 执行相同操作。验证用户 BBB 并调用时
HttpContext.Current.User.Identity
在 AAA 的计算机上,它将返回 BBB 的凭证。这是我的代码:
public void SignIn(string UserEmail, decimal UserProviderId, bool CreatePersistentCookie)
{
string userName = "";
bool validUser = _acctMembership.ValidateUser(UserEmail, UserProviderId, out userName, out _userId);
if (validUser)
{
string name = userName + ";" + UserEmail; _formAuth.SignIn(name, CreatePersistentCookie);
}
else
{
throw new System.Security.Authentication.InvalidCredentialException("Invalid Email or Password");
}
}
结论:
最后登录的用户会覆盖之前登录的用户的身份。
谁能告诉我如何解决这个问题?