示例#1
0
    private void HandleUserLogin( Dictionary<string, object> invokeResult, bool stayLoggedIn )
    {
      HeadersManager.GetInstance()
                    .AddHeader( HeadersEnum.USER_TOKEN_KEY,
                               invokeResult[ HeadersEnum.USER_TOKEN_KEY.Header ].ToString() );

      if( CurrentUser == null )
        CurrentUser = new BackendlessUser();

      CurrentUser.PutProperties( invokeResult );

      if( stayLoggedIn )
      {
        LoginStorage loginStorage = new LoginStorage();
        loginStorage.UserToken = invokeResult[ HeadersEnum.USER_TOKEN_KEY.Header ].ToString();
        loginStorage.UserId = Backendless.UserService.CurrentUser.UserId;
        loginStorage.SaveData();
      }
    }
示例#2
0
    public static void InitApp( string applicationId, string secretKey, string version )
    {
      if( string.IsNullOrEmpty( applicationId ) )
        throw new ArgumentNullException( ExceptionMessage.NULL_APPLICATION_ID );

      if( string.IsNullOrEmpty( secretKey ) )
        throw new ArgumentNullException(ExceptionMessage.NULL_SECRET_KEY);

      if( string.IsNullOrEmpty( version ) )
        throw new ArgumentNullException(ExceptionMessage.NULL_VERSION);

      AppId = applicationId;
      SecretKey = secretKey;
      VersionNum = version;

      Persistence = new PersistenceService();
      Data = Persistence;
      Geo = new GeoService();
      Messaging = new MessagingService();
      Files = new FileService();
      UserService = new UserService();
      Events = Events.GetInstance();
      Cache = Cache.GetInstance();
      Counters = CounterService.GetInstance();
      Logging = new LoggingService();
      CustomService = new CustomService();
      
      MessageWriter.DefaultWriter = new UnderflowWriter();
      MessageWriter.AddAdditionalTypeWriter( typeof( BackendlessUser ), new BackendlessUserWriter() );
      ORBConfig.GetInstance().getObjectFactories().AddArgumentObjectFactory( typeof( BackendlessUser ).FullName, new BackendlessUserFactory() );

      HeadersManager.CleanHeaders();
      LoginStorage loginStorage = new LoginStorage();

      if( loginStorage.HasData )
        HeadersManager.GetInstance().AddHeader( HeadersEnum.USER_TOKEN_KEY, loginStorage.UserToken );
    }
示例#3
0
    public void Logout( AsyncCallback<object> callback )
    {
      var responder = new AsyncCallback<object>( r =>
          {
            CurrentUser = null;
            HeadersManager.GetInstance().RemoveHeader( HeadersEnum.USER_TOKEN_KEY );
            LoginStorage loginStorage = new LoginStorage();
            loginStorage.DeleteFiles();

            if( callback != null )
              callback.ResponseHandler.Invoke( null );
          }, f =>
              {
                if( callback != null )
                  callback.ErrorHandler.Invoke( f );
                else
                  throw new BackendlessException( f );
              } );
      Invoker.InvokeAsync( USER_MANAGER_SERVER_ALIAS, "logout",
                          new object[] { Backendless.AppId, Backendless.VersionNum },
                          responder );
    }
示例#4
0
    public void Logout()
    {
      try
      {

        Invoker.InvokeSync<object>( USER_MANAGER_SERVER_ALIAS, "logout",
                                   new object[] { Backendless.AppId, Backendless.VersionNum } );
      }
      catch( BackendlessException exception )
      {
        BackendlessFault fault = exception.BackendlessFault;

        if( fault != null )
        {
          int faultCode = int.Parse( fault.FaultCode );

          if( faultCode != 3064 && faultCode != 3091 && faultCode != 3090 && faultCode != 3023 )
            throw exception;
        }
      }

      CurrentUser = null;
      HeadersManager.GetInstance().RemoveHeader( HeadersEnum.USER_TOKEN_KEY );
      LoginStorage loginStorage = new LoginStorage();
      loginStorage.DeleteFiles();
    }
示例#5
0
    public void IsValidLogin( AsyncCallback<Boolean> callback )
    {
      LoginStorage loginStorage = new LoginStorage();

      if( !loginStorage.NewPrefs && loginStorage.UserToken != null && loginStorage.UserToken.Length > 0 )
        Invoker.InvokeAsync<Boolean>( USER_MANAGER_SERVER_ALIAS, "isValidUserToken",
                                   new object[] { Backendless.AppId, Backendless.VersionNum, loginStorage.UserToken }, callback );
      else
        callback.ResponseHandler( CurrentUser != null );
    }
示例#6
0
    public bool IsValidLogin()
    {
      LoginStorage loginStorage = new LoginStorage();

      if( !loginStorage.NewPrefs && loginStorage.UserToken != null && loginStorage.UserToken.Length > 0 )
          return Invoker.InvokeSync<Boolean>( USER_MANAGER_SERVER_ALIAS, "isValidUserToken",
                                     new object[] { Backendless.AppId, Backendless.VersionNum, loginStorage.UserToken } );
      else
        return CurrentUser != null;
    }
示例#7
0
    public String LoggedInUserId()
    {
      LoginStorage loginStorage = new LoginStorage();

      if( loginStorage.NewPrefs )
        return null;

      return loginStorage.UserId;
    }