2011-12-02 66 views

回答

9

您始终可以创建一个新变量来检查这是用户的第一次登录,但该变量在首次登录后将变为未使用。

我假设你有一个DateTime变量UserLastLoggedin或沿着这些行的东西?如果该值为空,则该用户第一次登录。

+0

我喜欢这种方法^^ – Viper

+0

这是我知道的最不具侵入性的方式,很可能,您的系统已经在实施这个,您只需要知道何时检查它。 – Flater

-1

如果用户完成注册过程,您需要存储一个值,表明他还没有更改他的个人信息。

喜欢的东西

isNewUser = true; 
0

有几种方法来实现这一目标。您可以使用配置文件,或者在数据库中创建一个表格,您可以在其中存储userId以及指示符(如果他是第一次登录)。

比方说,你要使用的配置文件:将它添加到您的web.config

<profile> 
    <providers> 
    <clear /> 
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
    </providers> 
    <properties> 
    <add name="EverLoggedOn" defaultValue="False" type="System.Boolean" /> 
    </properties> 
</profile> 

如果您使用默认的AccountController看看这个代码:

  if (Membership.ValidateUser(model.UserName, model.Password)) 
      { 

       FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 

       if (Roles.IsUserInRole(model.UserName, "Administrator")) 
       { 
        return RedirectToAction("Index", "ManageApp"); 
       } 
       var userProfile = ProfileBase.Create(model.UserName); 
       var FirstTime = userProfile.GetPropertyValue("EverLoggedOn"); 
// rest of the code is up to you :)