asp:login不会触发任何事件

时间:2013-09-19 03:59:00

标签: c# asp.net webforms

我一直在寻找几个小时来解决这个问题。似乎很多人都有类似的问题,但没有一个解决方案适合我。我需要获取用户名才能在登录时获取userIndex。

我正在使用默认登录页面:

%@ Page Title="Log In" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Login.aspx.cs" Inherits="LunchTogether.Account.Login" %>
<h2>
        Log In
    </h2>
    <p>
        Please enter your username and password.
        <asp:HyperLink ID="RegisterHyperLink" runat="server" EnableViewState="false">Register</asp:HyperLink>
        if you don't have an account.
    </p>
    <asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false"         LoggedIn="OnLoggedIn" >

背后的代码是:

  void OnLoggedIn(object sender, EventArgs e)
        {
            bool Authenticated = false;
            Authenticated = SiteSpecificAuthenticationMethod(LoginUser.UserName, LoginUser.Password);
        }

我已尝试使用登录控件列出的所有事件,并且没有触发事件。我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:0)

我相信这是因为你必须在创建自己的登录控件版本后覆盖“onLoggedIn”方法。

请参阅此示例:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.login.onloggedin(v=vs.100).aspx

我相信你可以使用一些方法:

protected void OnLoginIn(object sender, EventArgs e)

protected void OnLoginError(object sender, EventArgs e)

没有覆盖控件,但我认为Context.Profile在设置完成时不会被设置,因此在您需要有关已登录用户的信息的情况下,我认为您需要覆盖控件。