PDA

View Full Version : سوال: نحوه ارتباط فرم لاگین با دیتابیس



hamidhws
شنبه 21 اسفند 1389, 08:45 صبح
با سلام
در ابتدا عرض کنم که هم جستجو کردم و هم مطالبی رو پیدا کردم اما هیچکدوم کامل نبود یا حداقل اون چیزی که میخواستم نبود. پس لطفا به دیگر صفحات ارجاع ندید و یه جواب کامل عنایت بفرمایید که شاید مشکل بقیه دوستان هم باشه....پیشاپیش تشکر


من یه فرم لاگین ساختم که یه تکست باکس برای دریافت نام کاربری و یک پسورد باکس برای رمز عبور داره و بانک اطلاعاتی رو هم ساختم و به دیتا ست وصل کردم و وب سرویس (WCF) هم ساختم اما هنوز چیزی توش ننوشتم .

1-میخواستم بدونم چجوری میتونم نام کاربری و رمز عبور رو در دیتابیس جستجو کنم(از طریق wcf)؟
2-بهترین روش برای hash کردن نام کاربری و رمز عبور چیه؟ اگه ممکنه نحوه پیاده سازیش هم توضیح بدید



با تشکر

taghvajou
شنبه 21 اسفند 1389, 19:11 عصر
سلام
میشه گفت شما متاسفانه انتظار دارین عین مطلب مورد نظرتون تو تاپیکها پیدا بشه. بنده میتونم بهتون اثبات کنم که هر آنچه لازم برای انجام این کاره قبلا گفته شده.

1- تو وب سرویس یه تابع درست کن برای کنترل نام و رمز مثلا ورودیهاش دو تا رشته باشه و خروجیش یه بول. داخل تابع یه کوئری بنویس که با دادن نام کاربری مقدار رمز رو از دیتابیس دریافت کنه بعد مقدار دریافت شده از دیتابیس رو با مقدار ورودی مقایسه کن اگه یکسان بود ترو (درست) برگردون و در غیر این صورت فالس.
طرف سیلور هم اگه دو تا تکس باکس و یه دکمه بزارین زیر دکمه متد سرویس رو فراخوانی کنین و مقادیر تکست باکسهای رمز و نام کاربری رو بهش بدین. در پاسخ (در رویداد اتمام) یه مسیج باکس بذارین که مقدرا درست یا غلط رو نشون بده.
دقیقا بگین مشکل تو چیه؟

taghvajou
شنبه 21 اسفند 1389, 22:50 عصر
سلام
میشه گفت شما متاسفانه انتظار دارین عین مطلب مورد نظرتون تو تاپیکها پیدا بشه. بنده میتونم بهتون اثبات کنم که هر آنچه لازم برای انجام این کاره قبلا گفته شده.

1- تو وب سرویس یه تابع درست کن برای کنترل نام و رمز مثلا ورودیهاش دو تا رشته باشه و خروجیش یه بول. داخل تابع یه کوئری بنویس که با دادن نام کاربری مقدار رمز رو از دیتابیس دریافت کنه بعد مقدار دریافت شده از دیتابیس رو با مقدار ورودی مقایسه کن اگه یکسان بود ترو (درست) برگردون و در غیر این صورت فالس.
طرف سیلور هم اگه دو تا تکس باکس و یه دکمه بزارین زیر دکمه متد سرویس رو فراخوانی کنین و مقادیر تکست باکسهای رمز و نام کاربری رو بهش بدین. در پاسخ (در رویداد اتمام) یه مسیج باکس بذارین که مقدرا درست یا غلط رو نشون بده.
دقیقا بگین مشکل تو چیه؟

2- این جا سوال اینه که میخواین این هش رو سمت سرور انجام بدین یا سمت کلاینت.

البته در هر دو صورت شما از نیم اسپیس کریپتوگرافی از امینت از سیستم، از کلاس هش الگوریتم استفاده میکنی. با این تفاوت که سمت کلاینت این کلاس مجرده (ابسترکت) و توش یه متد محاسبه هش داره (ComputeHash) ولی سمت سرور باید یه نمونه ازش با استفاده از پرووایدر نوع الگوریتم بسازی و تو نمونه ساخته شده از این متد استفاده کنی.

ورودی این متد استریم یا آرایه ای از بایته و خروجیش هم آرایه ای از بایته!
در واقع اگه شما این آرایه بایت رو میفرستی به جای رمز برای مقایسه، کار امن تر میشه!

میشه این کار رو نکنی و رشته وارد شده در کادر رمز رو بفرستی، ولی اگه یکی بین راه لیسن کنه یا اسنیف کنه رمز کاربرها رو بدست میاره ولی وقتی که اول هش میکنه بعد میفرستی به سرور اگه این کار رو هم بکنه به درد بخور نخواهد بود.

تو تابع سوال اولت هم شما هش شده رمز اصلی موجود تو دیتابیس رو با هش شده دریافت شده از کلاینت بایت به بایت مقایسه میکنی. این هم برمیگرده به اینکه ماهیتا چیزی به نام دی هش نداریم ولی چیزی که هش شده رو دیگه نمیشه باز گردوند. برای صحت سنجی رمز باید رمز وارد شده رو هش کنی و با اصلش هش شده مقایشه کنی.

سعی کن رمز ها رو هم حتما هش شده تو دیتابیس ذخیره کنه که قابل تشخیص و تعویض نباشه.

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


ببخشید که تکرار شد. من عادت دارم که مطلب مورد نظرم رو اول تو وان نوت مینویسم بعد کپی پیست میکنم.

hamidhws
یک شنبه 22 اسفند 1389, 04:45 صبح
سلام دوستان


بنده میتونم بهتون اثبات کنم که هر آنچه لازم برای انجام این کاره قبلا گفته شده

شاید حق با شما باشه دوست عزیز . بنده زیاد جستجو نکردم و شاید تاپیک هایی باشه که بنده پیدا نکردم ...به هرحال خوشحال میشم چنتا از این تاپیک ها که قبلا جواب سوالای من توش بوده رو معرفی کنید.
در ادامه هم باید ذکر کنم که یکی از وظایف مدیران تالار حذف تاپیک های تکراری هست! اگه دوستان فکر میکنن این تاپیک مفید نیست همینجا بفرمایید تا پاک بشه





مقدار رمز رو از دیتابیس دریافت کنه بعد مقدار دریافت شده از دیتابیس رو با مقدار ورودی مقایسه کن




میخواستم بدونم چجوری میتونم نام کاربری و رمز عبور رو در دیتابیس جستجو کنم


دوست عزیز خواهش میکنم کمی بیشتر دقت بفرمایید . ضمن اینکه از پاسخ گویی شما ممنونم اما اگه دقت بفرمایید شما همه چیز رو توضیح دادید (که دستتون هم درد نکنه) جز اون چیزی که میخواستم!



دقیقا بگین مشکل تو چیه؟


ببخشید دوست عزیزم اما واضح تر از این بلد نبودم!


1-میخواستم بدونم چجوری میتونم نام کاربری و رمز عبور رو در دیتابیس جستجو کنم(از طریق wcf)؟
2-بهترین روش برای hash کردن نام کاربری و رمز عبور چیه؟ اگه ممکنه نحوه پیاده سازیش هم توضیح بدید

__________________________________________________ ____________________________


این جا سوال اینه که میخواین این هش رو سمت سرور انجام بدین یا سمت کلاینت.

سمت کلاینت دوست عزیز
فکر نمیکنم هش سمت سرور ایده خوبی باشه! اگه قرار باشه سمت سرور هش بشه اگه هش نکنیم سنگینتریم!




در قسمت راهنمایی که فرمودید در مورد هش :

اول اینکه ممنونم
دوم اینکه ممنونم
سوم اینکه دوست عزیزم اینارو میدونستم فقط میخواستم نحوه پیاده سازیش رو بدونم (منظورم به صورت کد بود)

البته اگه نمیفرمایید دنبال لقمه آماده هستم!

بخدا من نمیخوام کد رو کپی پست کنم تو برنامم ! اما فکر کنم روند یادگیری از روی کد خیلی سریعتر و بهتره.

davoodrm666_666
یک شنبه 22 اسفند 1389, 11:43 صبح
من يك نمونه براي login نوشتم https://rapidshare.com/files/452301315/SLLogin.rar

علی اکبر
یک شنبه 22 اسفند 1389, 13:03 عصر
دوست عزیز سلام
متاسفانه نتوانستم از این سایت به علت محدودیت دانلود کنم
اگر امکان دارد برای من ارسال کنید
با تشکر
zare1357@gmail.com

mostafarastin239
دوشنبه 01 فروردین 1390, 20:39 عصر
من يك نمونه براي login نوشتم https://rapidshare.com/files/452301315/SLLogin.rar
سلام
نام کاربری و کلمه عبور چیه؟ بعد از اجرا یه همچنین صفحه ای ظاهر میشه به نظر من هنوز جای کار داره!!!؟


67757

موفق باشی

NIMA_1981
سه شنبه 02 فروردین 1390, 10:50 صبح
میشه جای دیگه آپلود کنید من نمی تونم دانلود کنم

davoodrm666_666
چهارشنبه 03 فروردین 1390, 11:40 صبح
سلام
نام کاربری و کلمه عبور چیه؟ بعد از اجرا یه همچنین صفحه ای ظاهر میشه به نظر من هنوز جای کار داره!!!؟


67757

موفق باشی

این فقط یک نمونه است و جای کار خیلی داره و می تونید ازش ایده بگیرید برای کار در پروژه خودتون