2015-04-24 44 views
0

我在网站中实现ASP.NET用户成员身份验证。 我使用ASP.NET的控制尝试从Page_Load事件触发/呼叫OnLoggedIn事件

  • 认证用户,
  • 注册新用户并
  • 更改密码更改身份验证的用户的密码。

我的功能:

  • 在注册页面,我的用户名和电子邮件作为输入和我有AutoGeneratePassword属性设置为true
  • 成功的注册系统通过电子邮件中的URL(例如http://localhost:xxxx/Login.aspx?user=abc10&pwd=something)向该用户发送电子邮件。

我的问题是,当用户点击上面的链接时,他应该自动重定向到更改密码页面来更改密码。 因此,对于重定向,我试图拨打page_Load中的OnLoggedIn事件。

我已经尝试了以下来自page_Load事件的调用。

  1. Login1_LoggedIn(sender.GetType(), null)
  2. login.LoggedIn += new EventHandler(Login1_LoggedIn)

但事件不点火,任何人可以帮助?

+0

我不认为你可以调用OnLoggedIn事件。用户尚未登录。尝试使用page_Loading事件。 –

+0

我发现没有page_Loading事件。但是我正在分享一些改进。从我上面的尝试,事件现在正在发射,它也正在到更改密码页面。但接下来的问题是,在更改密码页面上,登录用户未通过身份验证。这意味着,Request.IsAuthenticated属性返回false。因此,它再次要求我登录。 – Binoy

回答

0

最后我想通了。由于我必须制定两种方案,因此我需要 I.用户应该能够从登录页面登录。 二,当用户点击他们在电子邮件中收到的链接后,用户应该能够在登录后重定向到下一页。

所以第一点非常简单。

对于第二点,我创建了一个具有所有代码逻辑来验证用户的方法。并在page_load()事件和OnLoggedIn事件中调用此方法。

而在页面加载中,我写了下面的代码来模拟登录事件,将用户直接重定向到下一页。

protected void Page_Load(object sender,EventArgs e) 
{ 
string username = usernameTextbox.Text.Trim(); 
**FormsAuthentication.SetAuthCookie(username, true);** 
callLogin();// this method where in my user authentication logic resides 
}