Вскоре я выпускаю новую версию своего веб-сайта, и у меня возникают проблемы с входом пользователей в систему. Как только один пользователь входит в систему, другие пользователи не могут войти, потому что страница просто останавливается после нажатия кнопки входа в систему. Я использую 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);
}
}