0

我有一个用于登录页面的 Web 服务。但我想通过使用相同的网络服务登录不同的用户,如 Admin 和 Employee。

如果管理员登录显示一项活动 A. 管理员:公司:xxx 登录 ID:AAA 密码:BBB

如果员工登录显示另一个活动 B. 公司:YYY 登录 ID:CCC 密码:DDD

任何人都可以帮助我..请问怎么做?

谢谢你。

4

2 回答 2

0

检查下面的代码它可能会帮助你。

包 com.Barcode_Dynamic;

public class Login_activity extends Activity {

    private EditText exit_user;
    private EditText exit_pswd;
    private Button btnlogin;
    private Button btncancle;
    private String Url_s = null;
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    boolean LOGIN_BOOL = false;
    private Button btnBack;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        exit_user = (EditText) findViewById(R.id.edit_user);
        exit_pswd = (EditText) findViewById(R.id.edit_pswd);

        btnlogin = (Button) findViewById(R.id.btn_login);
        btncancle = (Button) findViewById(R.id.btn_cancle);

        btncancle.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                exit_user.setText("");
                exit_pswd.setText("");
            }
        });



        btnlogin.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                final String USER = exit_user.getText().toString();
                final String PSWD = exit_pswd.getText().toString();
                if (USER.length() > 0 && PSWD.length() > 0) {

                    CharSequence contentTitle = getString(R.string.app_name);
                    final ProgressDialog progDailog = ProgressDialog.show(
                            Login_activity.this, contentTitle,
                            "...", true);

                    final Handler handler = new Handler() {
                        @Override
                        public void handleMessage(Message msg) {
                            //showAlert("Import completed.");
                            if(LOGIN_BOOL)
                            {
                                showAlert("Login succes");                              
                                startActivity(new Intent(Login_activity.this, emailSettingFile.class));
                            }
                        }
                    };

                    new Thread() {
                        public void run() {
                            try {

                            nameValuePairs.add(new BasicNameValuePair("username", ""
                                    + USER));
                            nameValuePairs.add(new BasicNameValuePair("password", ""
                                    + PSWD));
                            InputStream is1 = call_Http();
                            String str = getResult(is1);
                            if (str != null) {
                                meth_parse_json(str);
                            }

                            } catch (Exception e) {
                                // TODO: handle exception

                            }
                            handler.sendEmptyMessage(0);
                            progDailog.dismiss();
                        }

                    }.start();



                } else {
                    showAlert("Please Enter Username & Password");

                }

                startActi();
            }
        });
    }

    protected void startActi() {
        // TODO Auto-generated method stub
        if(LOGIN_BOOL)
        {

        }
    }

    private InputStream call_Http() {
        InputStream is = null;
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(Url_s
                    + "/login_service.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse responce = httpclient.execute(httppost);
            HttpEntity entity = responce.getEntity();
            is = entity.getContent();


        } catch (Exception e) {
            // TODO: handle exception

        }

        return is;
    }

    private String getResult(InputStream is1) {
        String result = null;
        // TODO Auto-generated method stub
        try {
            BufferedReader bufr = new BufferedReader(new InputStreamReader(is1,
                    "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            sb.append(bufr.readLine() + "\n");
            String line = "0";
            while ((line = bufr.readLine()) != null) {
                sb.append(line + "\n");
            }

            is1.close();
            result = sb.toString();

        } catch (Exception e) {
            // TODO: handle exception

        }

        return result;
    }

    private void meth_parse_json(String str) {
        // TODO Auto-generated method stub
        Log.d("JSON :", "" + str);
        try {
            JSONObject job1 = new JSONObject(str);

            // JSONArray details = job1.getJSONArray("details");
            String a = (String) job1.get("details");
            Log.d("JSON :", "" + a);
            boolean bool = Boolean.parseBoolean(a);
            if (bool) {
                LOGIN_BOOL = true;
            } else {
                LOGIN_BOOL = false;
            }
        } catch (Exception e) {
            // TODO: handle exception

        }
    }
}

上面的 android 代码你必须创建用于登录的 web 服务。这只是如何做到这一点。

在 meth_parse_json 方法中,您必须检查这是用于公司登录还是员工登录。

我假设你有 mysql 的知识。

如果这对您有帮助,请使其正确。

于 2012-05-14T07:19:19.013 回答
0

我想您有一个用于登录的 Web 服务的数据库。使用两个字段创建另一个名为组或角色的表。表的 sql 脚本可能如下所示:

create table users (
  user_name         varchar(15) not null primary key,
  user_pass         varchar(15) not null
);

create table user_roles (
  user_name         varchar(15) not null,
  role_name         varchar(15) not null,
  primary key (user_name, role_name)
);

现在只需检索用户拥有的角色并决定他是否可以访问活动。

于 2012-05-14T07:20:37.063 回答