Вход в систему останавливается после первого входа в систему - PullRequest
0 голосов
/ 04 января 2012

Вскоре я выпускаю новую версию своего веб-сайта, и у меня возникают проблемы с входом пользователей в систему. Как только один пользователь входит в систему, другие пользователи не могут войти, потому что страница просто останавливается после нажатия кнопки входа в систему. Я использую SqlMembershipProvider.

Кнопка входа в систему использует пользовательскую кнопку ссылки, которую я разработал и использую по всему сайту без проблем. Он отключает кнопки при нажатии, если они проходят проверку.

Примечание. Эта проблема возникает только на производственном (удаленном) компьютере, а не на локальном тестовом компьютере с IIS 7.5.

Кто-нибудь видит здесь какие-нибудь проблемы? Это мой первый опыт внедрения Java из кода.

public class CustomLinkButton : System.Web.UI.WebControls.LinkButton
{
    /// <summary>
    /// If true, disables this control after it has been clicked using JavaScript.
    /// </summary>
    public bool DisableOnClick
    {
        get { return (bool)(ViewState["DisableOnClick"] ?? false); }
        set { ViewState["DisableOnClick"] = value; }
    }

    /// <summary>
    /// If true, ensures this button is re-enabled on postback if it has been disabled
    /// by JavaScript through DisableOnClick = true.  Defaults to true.
    /// </summary>
    public bool EnableOnPostback
    {
        get { return (bool)(ViewState["EnableOnPostback"] ?? false); }
        set { ViewState["EnableOnPostback"] = value; }
    }

    /// <summary>
    /// Gets or sets the message to display when this control is clicked and validation
    /// succeeds.
    /// </summary>
    public string MessageOnClick { get; set; }

    protected override void OnLoad(EventArgs e)
    {
        //If this control should be disabled when it is clicked then add the javascript to the control.
        if (DisableOnClick)
        {
            //Get the control we're changing
            string clickScript = "javascript:var element = document.getElementById('" + ClientID + "'); var valid = true; ";

            if (CausesValidation)
            {
                //Call Page_ClientValidate to validate the page; if it passes validation then diable
                //this control
                //clickScript += "element.disabled=Page_ClientValidate(); ";
                clickScript += "valid = Page_ClientValidate(); ";

                //If this control is a member of a validation group them add a call to that validation
                //group to Page_ClientValidate
                if (!string.IsNullOrEmpty(ValidationGroup))
                    clickScript = clickScript.Replace("()", "('" + ValidationGroup + "')");
            }

            //Disable the button if validation succeeds; if validation wasn't called then valid will be true
            //Also set the button to a light gray color
            clickScript += "element.disabled = valid; if(valid) element.style.color = '#FCF2F5'; ";

            //If MessageOnClick has a value then add a statement to change the text of this control
            //to that value after a click too.
            if (!string.IsNullOrEmpty(MessageOnClick))
                clickScript += " element.innerText='" + MessageOnClick + "';";

            OnClientClick = clickScript;
        }

        //If this control has been disabled and is set to be re-enabled on postback then enable it
        //Also enable this if validation fails no matter what
        if ((DisableOnClick && EnableOnPostback))
            Enabled = true;

        base.OnLoad(e);
    }
}
...