У меня проблемы при использовании тега <asp:login>
. Когда пользователь нажимает кнопку «Войти», форма будет обрабатываться правильно. Однако, когда пользователь нажимает клавишу ввода, форма самостоятельно отправляет и не обрабатывает логин, независимо от того, была ли эта информация правильной или нет. Я использую комбинацию MasterPages и Umbraco.
Мой код aspx выглядит так:
<%@ Master Language="C#" MasterPageFile="/masterpages/AccountCenter.master" CodeFile="~/masterpages/Login.master.cs" Inherits="LoginPage" AutoEventWireup="true" %>
<asp:Content ContentPlaceHolderID="RunwayMasterContentPlaceHolder" runat="server">
<div class="loginBox">
<div class="AspNet-Login-TitlePanel">Account Center Login</div>
<asp:label id="output" runat="server"></asp:label>
<asp:GridView runat="server" id="GridResults" AutoGenerateColumns="true"></asp:GridView>
<asp:Login destinationpageurl="~/dashboard.aspx" ID="Login1" OnLoggedIn="onLogin" runat="server" TitleText="" FailureText="The login/password combination you provided is invalid." DisplayRememberMe="false"></asp:Login>
</div>
</asp:Content>
На фактически обработанной странице я вижу этот javascript в форме:
<form method="post" action="/dashboard.aspx?" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
Эта функция javascript определяется как:
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</script>
При запуске javascript всегда принимает значение True.