2012-07-18 60 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
相关问题