2011-12-02 58 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 :)