آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

اتصال به وب سرویس با یوزر نیم و پسورد ؟

aliasheq  12 سال پیش  12 سال پیش
+1 0

سلام اگر به وب سرویسی که میخوام وصل بشم  یوزر نیم و پسورد داشته باشه چی کار باید بکنم ؟ چطور باید یوزر نیم و پسورد را به وب سرویس پاس بدم ؟البته از طریقه یوآرال نمیخوام پاس بدم .

اینم کده اندرویدمه :

 public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		EditText edtUsername = (EditText) findViewById(R.id.edtUserName);
		EditText edtPassword = (EditText) findViewById(R.id.edtPassword);
		String username = edtUsername.getText().toString();
		String passwprd = edtPassword.getText().toString();
		
		HttpClient client = new DefaultHttpClient();
		HttpPost methodPost = new HttpPost("http://www.online.test.ir/MobileWebService/Related.asmx/Login");
		try {
			client.execute(methodPost);
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

این کده وب سرویسشه :

         [WebMethod(EnableSession = true)]
        public int Login(string username, string pass, string device, int? security)
        {
            var ret = -3;
            try
            {
                var bs = new BaseMaster();
                if (!bs.securityRequest(10))
                {
                    return -10;//ارسال بیش از حد دیتا
                }
                bs.setLogMobileVisit();
                if (string.IsNullOrEmpty(pass) || security == null || string.IsNullOrEmpty(username))
                {
                    ret = -2;//پارامترهای اساسی ارسال نشده است
                }
                else if (security != 128110)
                {
                    ret = -1;//کد امنیتی درست وارد نشده است
                }
                else
                {
                    var user = GetUserByName(username);
                    var p = Hash.MD5(pass);
                    if (user != null && user.Hidden == false && user.Password == Hash.MD5(pass))
                    {
                        if (user.Firstname != device)
                        {
                            return -4;//این گوشی برای این نام کاربری فعال نشده است
                        }
                        var u = new UserDB();
                        u.LastLogDate = DateTime.Now;
                        u.UpdateDate = DateTime.Now;
                        u.UserID = user.UserID;
                        Makarem_Facade.MakaremFL.UpdateMobileUserDB(u);
                        ret = (int)user.UserID;//عددی بزرگتر از 0 نشان دهنده لاگین با موفقیت است
                        var pl = new PermissionDBList();
                        Security.Login(user,false,pl);
                        StartSession(user);
                    }
                    else if (user.Hidden == true)
                    {
                        ret = 0;//این کاربری توسط مدیر غیر فعال شده است
                    }
                    else if (user == null)
                    {
                        ret = -3;// این نام کاربری یافت نشده است
                    }
                    else
                    {
                        ret = -5;//کلمه عبور با نام کاربری همخوانی ندارد
                    }
                }
            }
            catch
            {
                ret = -6;//خطایی در طول برنامه رخ داده است              
            }
            return ret;
        }
+1 0
شما یوزر و پسورد را post کن ! البته پسورد را Hash کن بعد بفرست (12 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
aliasheq  12 سال پیش
+1 0

آقای میرهادی . اینطوری درسته ؟

 
final HttpParams params = new BasicHttpParams(); params.setParameter("username", "google"); params.setParameter("passwprd", "123456789"); params.setParameter("device", "0"); params.setParameter("security", 128110);

@Override public void run() { HttpClient client = new DefaultHttpClient(); HttpPost methodPost = new HttpPost("http://www.online.makarem.ir/MobileWebService/Related.asmx/Login"); methodPost.setParams(params); try { HttpResponse response = client.execute(methodPost); int code = response.getStatusLine().getStatusCode(); Log.i("OK", Integer.toString(code)); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
پاسخ به سوال 
sadeghbarout  12 سال پیش
+2 0

والا من از وب سرویسی که استاد نوشتن استفاده میکنم. اینجوری پاس میده :

 public class Webservice {



public static String send_eteraf(ArrayList<NameValuePair> params) {
String res = Webservice.readUrl("http://www.uncocoder.com/page.php", params);
return res;
}


public static String readUrl(String url, ArrayList<NameValuePair> params) {
try {
HttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(url);

if (params != null) {
method.setEntity(new UrlEncodedFormEntity(params));
}

HttpResponse response = client.execute(method);

InputStream inputStream = response.getEntity().getContent();
String result = convertInputStreamToString(inputStream);

return result;
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}

return null;
}


private static String convertInputStreamToString(InputStream inputStream) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();

String line = "";

while ((line = reader.readLine()) != null) {
builder.append(line);
}

return builder.toString();
}
catch (IOException e) {
e.printStackTrace();
}

return null;
}
}

که مقادیر به صورت NameValuePair ها فرستاده میشن.

اینم طرز استفاده اش:

 ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));

String response = Webservice.readUrl(params);
0 0
من فگر میکنم هر دفعه یوزر و پس نفرستیم بهتره. یکبار اول بفرستین به صورت Hash شده با salt بعد یک رشته sha1 جواب بگیرید ، اون رشته را یا یک چیز دیگه مخلوط کنید و hash کنید. این میشه کلید ارتباط سرور و کلاینت ، این رو بفرستید و بگیرید. بعد از یک مدت هم اکسپایرش کنید (12 سال پیش)
0 0
آره اینم راه امنیتی خوبیه. راستی اندروید sha1 و md5 رو داره؟ (12 سال پیش)
0 0
آموزش وب سرویس قسمت کش sha1 هست. md5 هم مشابه اونه ، فکر کنم سورسش را در سایت گذاشته بودم (12 سال پیش)
0 0
آها.ممنون. اون آموزش رو هنوز ندیدم. امشب اگه شد میبینمش (12 سال پیش)
0 0
Sadeghbarout جان منم از همون post استفاده کردم ولی با کمی تفاوت . MiRHaDi جان فرموده شما کاملا درسته که من پسورد رو توی webService .Net هش میکنم . چون برای چت آنلاین هست .با تشکر از شما عزیزان (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .