Я начал со страницы входа в веб-формы, которая уже несколько лет находится в производстве, не имеет главной страницы и использует элемент управления Aspnet Webcontrols.Login
.
Я скопировал код на новые главные страницы / страницы с контентом, но метод Login1_Authenticate
на новой странице никогда не запускается.
Событие Login_PreRender
происходит как следует.
Я попытался удалить и снова добавить метод OnAuthenticate
через Visual studio 2017.
Я попытался добавить Handles Login1.Authenticate
в метод Authenticate
, но без изменений.
Я очистил сборку и перестроил.
Я попытался OnAuthenticate="SomeJibberish
", а затем я получил исключение" ... не является членом ... ". Таким образом, метод подключен.
Я использую свой <LayoutTemplate>
, скопированный с производственного кода.
Я считаю невозможным использовать элемент управления Login
на странице содержимого.
Login.Master:
<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Login.master.vb"
Inherits="MyProject.Web.LoginMaster" %>
<html>
<head>
...
</head>
<body>
<form id="form1" runat="server">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</form>
</body>
Login.aspx:
<%@ Page Language="vb" AutoEventWireup="false" MasterPageFile="~/Login.Master" CodeBehind="Login.aspx.vb"
Inherits="MyProject.Web.Login" %>
...
<asp:Login ID="Login1" runat="server"
OnPreRender="Login1_PreRender"
OnAuthenticate="Login1_Authenticate">
<LayoutTemplate>
<asp:TextBox ID="UserName" runat="server"/>
<asp:TextBox ID="Password" runat="server" TextMode="Password"/>
<asp:Button ID="LoginButton" runat="server" ComandName="Login" Text="Login" />
</LayoutTemplate>
</asp:Login>
Login.vb:
Partial Public Class Login Inherits System.Web.UIPage
...
Protected Sub Login1_PreRender(sender As Object, e As EventArgs)
...is fired
End Sub
Protected Sub Login1_Authenticate(sender As Object, e As AuthenticateEventArgs)
...is not fired
End Sub
Login.aspx.designer.vb:
Partial Public Class Login
Protected WithEvents Login1 As Global.System.Web.UI.WebControls.Login