方案是,如果用户使用他的一次性密码登录了第一个密码,则应该重定向到ResetPassword.aspx
如果用户不是新用户,则应该重定向到Main.aspx页面。
我应该使用IsPostBack
还是Membership.ValidateUser
?
我们通常如何在C#中编码来检查它是否是新用户(使用首次登录)?
我是编程的新手,没有在网上获得足够的信息。请帮忙
答案 0 :(得分:3)
IsPostBack
检查无法帮助您满足您的需求。您需要通过数据库维护它。
IsPostBack Gets a value that indicates whether the page is being rendered
for the first time or is being loaded in response to a postback.
它与页面帖子有关,而与数据库或用户或逻辑无关:)
为了帮助您完成逻辑,您需要维护一个单独的列,以确定用户是否第一次来。
一个简单的逻辑:
在您的表中创建一个列,LastLoginDate
使其可以为空。注册用户时,请将此字段保留为NULL。
当用户登录时,只需检查LastLoginDate
是否为NULL,即
if(userObj.LastLoginDate == null)
{
//user has come for the first time
//code to update the LastLoginDate to DateTime.Now
Redirect("resetPassword.aspx");
}
else
{
//code to update the LastLoginDate to DateTime.Now
Redirect("home.aspx");
}
答案 1 :(得分:1)
Membership.ValidateUser检查他/她是否未获批准或是否提供了错误的凭据。
对于此问题,请在创建新用户时在数据库中设置一些标记。
当用户登录时,请检查其标志。
如果它指示新用户,则将其重定向到resetpassword页面。
只需在重定向后更改标记状态,以便下次不会将其指示为新用户。