私は 2 つの別々の Web プロジェクトに取り組んでいますが、両方に同じ認証シナリオを使用しています。これが私のログインコードの一部です:
public void Login(string username, string password, bool staySignedIn)
{
if (this.IsLockedOut(username))
{
this._view.ShowMessage("Your account has been locked!");
return;
}
else if (!this.IsApproved(username))
{
if (!string.IsNullOrEmpty(this.webContext.CurrentUserID))
{
this.membershipService.ChangeApprove(this.webContext.CurrentUserIdFromQuery);
this.DoLogin(username, password, staySignedIn);
}
else
this._view.ShowMessage("Your account is not activated yet");
}
else
this.DoLogin(username, password, staySignedIn);
}
private void DoLogin(string username, string password, bool staySignedIn)
{
try
{
FormsAuthentication.SetAuthCookie(username, staySignedIn);
if (!string.IsNullOrEmpty(this.webContext.GetReturnUrl))
this.redirector.GotoUrl(this.webContext.GetReturnUrl);
else this.redirector.GotoProfileDefault();
}
catch (Exception ex)
{
this.logger.PrintToLogFile(ex, false);
this._view.ShowMessage("Some error code");
}
}
project1 には、 user1 、 user2 、 user3 の 3 人のユーザーがいて、 project2 にはユーザーがいません。私の問題は、web project1 に user1 としてログインすると、web project2 がブラウザーで表示されている場合、project1 で同じユーザー データを使用して user1 としてもログインしていることを示しています。理由はわかりません。何か提案をお願いできますか?