我一直在寻找几个小时来解决这个问题。似乎很多人都有类似的问题,但没有一个解决方案适合我。我需要获取用户名才能在登录时获取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);
}
我已尝试使用登录控件列出的所有事件,并且没有触发事件。我在这里缺少什么吗?
答案 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在设置完成时不会被设置,因此在您需要有关已登录用户的信息的情况下,我认为您需要覆盖控件。