Зарегистрированные пользователи должны проходить аутентификацию только один раз - PullRequest
0 голосов
/ 07 марта 2012

ребята, я работаю на Android 2.2. У меня есть ситуация, когда, когда пользователь входит в приложение, ему разрешают использовать предоставленный аудио-файл по умолчанию.

Теперь есть кнопка, когда он нажимает на нее, она переходит на страницу входа. Если он не зарегистрированный пользователь, он может зарегистрироваться и снова войти в систему с именем пользователя и паролем. Как только он войдет в систему со своим именем пользователя и паролем, он будет разрешено скачивать n аудиофайлов с сервера.

Итак, я хочу, чтобы пользователь был зарегистрирован, когда пользователь регистрируется и выходит из приложения, но опять же, если зарегистрированный пользователь хочет загрузить еще несколько файлов, ему не следует запрашивать имя пользователя и пароль, поскольку он является зарегистрированным пользователем. .

Как этого добиться?

Код для входа зарегистрированному пользователю:

ArrayList<NameValuePair> nvp = new  ArrayList<NameValuePair>();

             nvp.add(new BasicNameValuePair("userid", userid.getText().toString()));
             nvp.add(new BasicNameValuePair("password", password.getText().toString()));
             String un = userid.getText().toString();
             String pass = password.getText().toString();

             System.out.println("user name is " + un);
             System.out.println("password is " +pass);
//           Log.e(""+sid.getText().toString(),"0"); 
//           Log.e(""+sname.getText().toString(),"0");
                try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost("http://mywebsite.com/login.php");
                httppost.setEntity(new UrlEncodedFormEntity(nvp));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
                } catch(Exception e){
                    Log.e("log_tag", "Error in http connection"+e.toString());
                }
                try {
                    BufferedReader bf  = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                    sb = new StringBuilder();
                    sb.append(bf.readLine()+ "\n");
                    String line="0";
                       while ((line = bf.readLine()) != null) {
                                      sb.append(line + "\n");
                        }
                        is.close();
                        result=sb.toString();
                    System.out.println("value of result " +result);

                    if(result.contains(auth)){

                        System.out.println("username and password is correct");

                        Intent authorised = new Intent(Login.this,BrowseFiles.class);
                        startActivity(authorised);
                    }else{

                        System.out.println("incorrect wrong wrong wrong");
                        error.setText("Incorrect username and password");
                    }


                }catch(Exception e){
                      Log.e("log_tag", "Error converting result "+e.toString());
                }

1 Ответ

1 голос
/ 07 марта 2012

Вы можете использовать SharedPreference для своего приложения и проверить его, когда вы начинаете загрузку. Если оно установлено, то вы можете продолжить, в противном случае откройте страницу входа / регистрации, как хотите

РЕДАКТИРОВАТЬ:
Как только пользователь успешно войдет в систему

SharedPreferences share_pref=PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
      SharedPreferences.Editor editor = share_pref.edit();
      editor.putBoolean("Login", true);

      // Commit the edits!
      editor.commit();  

, затем перед загрузкой вы можете проверить это логическое значение, если оно истинно, тогда выполните загрузку, иначе перейдите на экран входа в систему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...