2016-02-28 109 views
0

我正在编写一个Android应用程序,该应用程序连接到用于提供数据的数据中心(Windows PC),例如FTP服务器和其他文件。我需要应用程序使用用户名和密码向数据中心进行身份验证,以便您必须先登录才能访问PC上的任何内容。我熟悉使用PHP登录网站,但除了网站以外没有任何其他登录信息。我发现了有关Apache Shiro或Spring Security的一些信息,但我找不到任何简单的例子。此外,它还可以作为代理使用,在未登录时阻止到PC的流量,并在登录时允许流量。任何人都可以推荐一种简单的方法来使用PC验证我的应用程序吗?PC和Android之间的身份验证

+0

'需要的应用程序认证到datacenter'。很模糊。哪个协议?什么样的数据中心服务器? – greenapps

+1

我还没有真正想出一个协议来做到这一点,那就是问题所在。数据中心实际上充当网络入口的角色,并且它运行着一个MySQL数据库来记录流量信息,但它并没有为网站提供服务。我所说的数据中心只是一台安装了MySQL的Windows 10电脑,而Wireshark则用于记录流量数据。 –

+0

'我还没有真正想出一个协议来做到这一点,'。 ???您不必制定协议。你必须弄清楚使用哪种协议。那么你必须使用哪个协议。一旦你知道你可以实现该协议。 – greenapps

回答

0

在Apache服务器的PHP代码是

<?PHP 
    $con= 
    "(DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = your_ip)(PORT = 1521)) 
    (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = database_name) 
    ) 
    )"; 
    $conn = ocilogon("User_name", "password",$con,"WE8ISO8859P15"); 

    $query = "Select * from tablename"; 

    $parseresults = ociparse($conn, $query); 
    ociexecute($parseresults); 

    while($row=oci_fetch_assoc($parseresults)) 

    $output[]=$row; 

    print json_encode($output); 

    oci_free_statement($parseresults); 
    oci_close($conn); 
    ?> 

在Android中,你可以使用

public class UploadAsyncTask extends AsyncTask<Void, Void, String> { 
Context context; 

String result; 

public UploadActivity(Context context) { 
    this.context = context; 
} 

@SuppressWarnings("static-access") 
@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 


} 

@Override 
protected String doInBackground(Void... params) { 
    // TODO Auto-generated method stub 


    final List<Pair<String, String>> postParameters = new ArrayList<>(); 



    Database db= new Database(context); 
    db.open(); 
    String activity[][] = db.uploadActivity(); 
    db.close(); 
    if(activity!=null&&!activity[0].equals(null)) { 
     for (int i = 0; i < activity[0].length; i++) { 

      postParameters.add(new Pair<>("var1", activity[i][0]); 

      result = null; 


      try { 

       String response = CustomHttpClient.execute(
         URL + "UPLOAD_DATA.php", postParameters); 
       result = response.toString(); 
       result = result.replaceAll("(\r\n|\n)", ""); 

      } catch (Exception e) { 

       Log.e("log_tag_ms", "Error in http connection!!" + e.toString()); 

      } 

     } 
    } 

    return null; 
} 

protected void onPostExecute(String result) { 
    super.onPostExecute(result); 


    } 
} 
+0

谢谢,但它只是一个例子............ –

+0

所有你的代码没有意义,因为OP要求其他信息。 – greenapps

+0

抱歉,我无法理解你 –