Событие OnAuthenticate входа в Webforms не запускается на дочерней странице - PullRequest
0 голосов
/ 03 июля 2018

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

1 Ответ

0 голосов
/ 11 июля 2018

Кажется, проблема в маленькой опечатке. Атрибут имени команды должен быть CommandName вместо ComandName.

<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Login" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...