사용자 이름과 암호를 확인하기 위해 asp : login 컨트롤을 사용하고 있습니다. 다음은 컨트롤입니다. 로그인 시도를 추적하기 위해 세션 변수 LoginCount를 사용합니다. 우리는 세 번만 시도 할 수 있습니다. 또한 WebControlAdapter를 사용하여 asp : login 컨트롤을 고객 화합니다. 그러나 어쨌든 때로는 이벤트 처리기 Login1_Authenticat가 두 번 호출되면 LoginCount가 2만큼 증가합니다. 한 번만 시도하면됩니다. 아무도 내가 잘못 된 곳을 찾아 낼 수있게 도와 줄 수 있습니까?내 onauthenticate 이벤트 처리기가 두 번 호출되는 경우가 있습니다.
<asp:Login
ID="Login1"
runat="server"
OnAuthenticate="Login1_Authenticate"
DestinationPageUrl="index.aspx" TitleText="" DisplayRememberMe="false" UserNameRequiredErrorMessage="Username is required." PasswordRequiredErrorMessage="Password is required."
/>
public class LoginAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
{
private enum State
{
LoggingIn,
Failed,
Success,
}
State _state = State.LoggingIn;
...
public LoginAdapter()
{
_state = State.LoggingIn;
}
/// ///////////////////////////////////////////////////////////////////////////////
/// PROTECTED
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Login login = Control as Login;
if (Extender.AdapterEnabled && (login != null))
{
RegisterScripts();
login.LoggedIn += OnLoggedIn;
login.LoginError += OnLoginError;
_state = State.LoggingIn;
}
}
...
업데이트 : LoginAdapter에서 버그로 판명되었습니다. 나는 다음 링크에서 제공되는 픽스를 지쳤다. https://cssfriendly.codeplex.com/workitem/234
사용자 세션은 쿠키로 식별되므로 사용자가 세션 쿠키를 유지하지 않는 한 원하는만큼 여러 번 로그인을 시도 할 수 있습니까? –