2012-07-18 95 views
1

您好我已經開發了一個登錄表單(用戶名,密碼和提交按鈕)使用MySQL連接通過我的android應用程序中的soap web服務。 這裏我忘記我的密碼意味着我無法訪問我的帳戶。那麼如何訪問我的帳戶。第一個註冊頁面完成之前去登錄page.registration頁面有用戶名,密碼和email.so當我忘記我的密碼手段點擊忘記密碼textview.then它去忘記密碼activity.here當我進入我的註冊電子郵件ID意味着我的密碼發送到我的電子郵件id.how我可以do.please指導我。 像下面的圖像:enter image description here忘記密碼發送到電子郵件在Android應用程序

enter image description here

如何創建完成DIS代碼在XML資源的activity.how我創建忘記Java代碼DIS app.I?我似乎無法做到這一點。

stillnow我的Java代碼:

Login.java:

package com.soap; 

import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.PropertyInfo; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapPrimitive; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Login extends Activity { 
private final String NAMESPACE = "http://ws.userlogin.com"; 
private final String URL = "http://192.168.1.168:8085/Login/services/Login?wsdl"; 
private final String SOAP_ACTION = "http://ws.userlogin.com/authentication"; 
private final String METHOD_NAME = "authentication"; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 
    Button register = (Button) findViewById(R.id.btn_reg); 
    register.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // Switching to Register screen 
      Intent i = new Intent(getApplicationContext(), Register.class); 
      startActivity(i); 
     } 
    }); 
    Button logout = (Button) findViewById(R.id.btn_logout); 
    logout.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // Switching to Register screen 
      Intent i = new Intent(getApplicationContext(), Login.class); 
      startActivity(i); 
     } 
    }); 
    TextView forgetpassword = (TextView) findViewById(R.id.TextView03); 
    forgetpassword.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // Switching to Register screen 
      Intent i = new Intent(getApplicationContext(), ForgetPassword.class); 
      startActivity(i); 
     } 
    }); 
    Button login = (Button) findViewById(R.id.btn_login); 
    login.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View arg0) { 
    loginAction(); 

     } 
     }); 
     } 

    private void loginAction(){ 
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    EditText userName = (EditText) findViewById(R.id.tf_userName); 
    String user_Name = userName.getText().toString(); 
    EditText userPassword = (EditText) findViewById(R.id.tf_password); 
    String user_Password = userPassword.getText().toString(); 

    //Pass value for userName variable of the web service 
    PropertyInfo unameProp =new PropertyInfo(); 
    unameProp.setName("userName");//Define the variable name in the web service method 
    unameProp.setValue(user_Name);//set value for userName variable 
    unameProp.setType(String.class);//Define the type of the variable 
    request.addProperty(unameProp);//Pass properties to the variable 

    //Pass value for Password variable of the web service 
    PropertyInfo passwordProp =new PropertyInfo(); 
    passwordProp.setName("password"); 
    passwordProp.setValue(user_Password); 
    passwordProp.setType(String.class); 
    request.addProperty(passwordProp); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

    try{ 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
      SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
      String status = response.toString(); 
      TextView result = (TextView) findViewById(R.id.tv_status); 
      result.setText(response.toString()); 

      if(status.equals("Success!")) 
      { 
       Intent intent = new Intent(Login.this,HomePage.class); 
       intent.putExtra("username",userName.getText().toString()); 
       startActivity(intent); 


      } 
      else 
      { 
       Intent i = new Intent(getApplicationContext(), Login.class); 
       startActivity(i); 
      } 
      } 



    catch(Exception e){ 

    } 
    } 

    } 
+0

您是否在尋找忘記密碼的邏輯是什麼? – SALMAN 2012-07-18 10:29:12

+0

是的,我希望需要當我忘記我的密碼意味着單擊忘記密碼textview.then它是去忘記密碼activity.here當我進入我的註冊電子郵件ID意味着我的密碼發送到我的電子郵件ID..how我可以做 – 2012-07-18 11:15:43

+0

如果你的用戶密碼沒有在服務器端加密比可以更容易的解決方案 – SALMAN 2012-07-18 13:34:04

回答

2

如果用戶密碼未加密,

1 - 創建一個web服務emailPasswordToUser 這種「emailPasswordToUser」 Web服務將收到「EMAILADDRESS」的用戶將在你的Android應用程序,並提交按鈕你「emailPasswordToUser」將通過KSOAP庫擊中後進入一個參數。

「emailPasswordToUser」此Web服務將檢查:

A - 用戶的電子郵件地址是否確實在數據庫或不存在。

B - 如果存在,它將從Web服務參數收到的「emailaddress」中收回用戶信息,並將用戶密碼發送給此「emailaddress」,並將消息返回到Android端,並將被解析「Your密碼已發送到您的電子郵件地址」

ç - 如果它不存在的web服務將返回消息‘沒有這樣的用戶存在’

感謝

+2

我從dis回答了一些想法。謝謝 – 2012-07-19 05:11:58

+0

以可恢復的形式存儲密碼是非常糟糕的做法,甚至更糟糕的是要將所述密碼發回給用戶。密碼應該像BCrypt一樣被醃製和散列。請參閱http://stackoverflow.com/questions/1054022/best-way-to-store-password-in-database。 – 2015-09-16 04:52:58

0

你必須創建一些服務器,可以通過電子郵件訪問MySQL,發現有密碼,併發送電子郵件給用戶。你不應該在應用程序中執行它。

+0

雅我使用tomcat服務器和訪問mysql也how.how是do.please指導me.please深入解釋 – 2012-07-18 11:14:22

0
  1. 您可以使用Java郵件API從應用程序
  2. 發送郵件,您必須具有Internet連接,您的應用程序使用此功能。
  3. 請參閱此鏈接瞭解Java郵件API的實現。 Mail
相關問題