PDA

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



bftarane
چهارشنبه 28 اسفند 1392, 09:23 صبح
سلام.
در یک سایت کاربر موقع ثبت نام فرضاً اسم کاربریش رو MyUserName انتخاب می کنه.
حالا در صورت تأیید ادمین از این به بعد کاربر با وارد کردن این نام کاربری بعد از آدرس سایت وارد یه صفحه مربوط به خودش میشه

حالا یه سایت دیگه هست که باید در یکی از صفحاتش هر کاربری که در سایت اول ثبت نام کرد و تأیید شد، لینک صفحه ای که مختص اون کاربر هست

http://www.siteName/MyUserName

در سایت دوم به طور اتوماتیک نشون داده بشه

در واقع ما دو تا سایت جداگانه داریم چطور میشه وقتی آدرسی که در بالا اشاره کردم در سایت اول ایجاد میشه
به طور خودکار در سایت دوم هم نمایش داده بشه؟
ممنون

bftarane
چهارشنبه 28 اسفند 1392, 22:50 عصر
هر راهی به نظرتون می رسه مطرح کنید لطفاً. درست یا غلطش مهم نیست. شاید به یه نتیجه ای برسیم.

یه مورد به ذهن خودم می رسه اینه که لینک‌های سایت اول در یک فایل xml نوشته بشن. و بعد در یک صفحه از سایت دوم این لینک‌ها به یه نحوی خونده بشن از اون فایل xml.
اولاً آیا این ایده خوبه؟ دوماً چطور میشه این فایل xml رو از سایت دیگه خوند؟
با توجه به اینکه هر دو سایت برنامه نویسیش دست خودمونه.

mRizvandi
چهارشنبه 28 اسفند 1392, 23:58 عصر
من هدف این کار رو نمیدونم، اما برای دسترسی به اطلاعات می تونی از یک دیتابیس مشترک استفاده کنی یا از یک وب سرویس استفاده کنی.

bftarane
پنج شنبه 29 اسفند 1392, 00:07 صبح
من هدف این کار رو نمیدونم
مشتری دو تا سایت داره و اون خواسته همچین چیزی رو.


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

یا از یک وب سرویس استفاده کنی

میشه در این مورد بیشتر توضیح بدید؟
این وب سرویس به چه نحو کار می کنه؟

aminireza65
پنج شنبه 29 اسفند 1392, 09:58 صبح
به نظر من هم دیتابیس مشترک راه خوبیه به شرطی که مشتری تون هزینه انجام این تغییرات رو بهتون پرداخت کنه. چون خودش خواهان این تغییراته.

bftarane
پنج شنبه 29 اسفند 1392, 16:16 عصر
در مورد وب سرویسی که این کار رو انجام بده می تونید اطلاعاتی بدید؟ یا لینکی که بتونم در موردش اطلاعات کسب کنم؟

mRizvandi
جمعه 01 فروردین 1393, 11:31 صبح
دوست عزیز در خصوص دیتابیس مشترک: می تونید روی یکی از هاستهاتون دیتابیس اس کیو ال بگیرید و برای انجام تبادل اطلاعات، دیتاها رو توی اون بذارید و هر دو وب سایت به این دیتابیس متصل بشند و اطلاعات مورد نظرشون رو بردارند. (کم هزینه، سریع، ولی به نظرم برای کار شما خیلی قشنگ نیست!)

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

وب سرویس یک سرویس تحت وب است که بر اساس استاندارد داده های خودش رو با قالب XML منتقل می کنه.
شما یک سری متد می نویسید که دیگران می تونند اون رو فراخوانی کنند. و اطلاعاتی رو بگیرند یا بفرستند. این ارسال و دریافت بر پایه پروتکل HTTP صورت می گیره و دیتاها هم به صورت XML جابجا میشن، در نتیجه فارغ از پلت فلرم برنامه نویسی وب سرویس شما می تونی با روشها و زبانهای مختلفی به این سرویس دسترسی داشته باشی.

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

Mohammad_dn
جمعه 01 فروردین 1393, 17:43 عصر
منم دنبال یاد گیری وب سرویس هستم...امکانش هست که یه آموزش فارسی بزارید؟؟؟؟؟

Mojtaba.Shateri
جمعه 01 فروردین 1393, 18:15 عصر
شما میتونی با WebApi این مشکلو براحتی حل کنی. یک کلاس بسازی که از ApiController ارث ببره و ی متد مثلا بزاری توش به نام(GetByUserName(string userName .
از سایت دوم زمانی که میخوای یک مسیرو هندل کنی ، بیای این WebApi رو از سایت اول صدا بزنی و اگه خروجیش مخالف null بود مقدارشو map کنی تو یه کلاس و از مقادیرش استفاده کنی.
اگه امنیت دیتابیس برات مهمه و نمیخوای در سایت دوم باشه این روش یا همون webService بهتره.
اگر میخوای از دیتابیس مشترک استفاده کنی که کافیه از سایت دوم یه کانکشن بزنی روی دیتابیس سایت اولیت. ی یوزر با سطح دسترسی محدودم براش بساز با اون وصل شو که کسی هکش نکنه:لبخند:

bftarane
شنبه 02 فروردین 1393, 09:27 صبح
راجع به وب سرویس باید تحقیق کنم.
ولی این قضیه با همون فایل xml که در پست 2 اشاره کردم حل شد. احتمال می دم در وب سرویس هم یه همچین کدنویسی نهفته شده باشه.
یعنی در سایت مبداً لینک‌ها رو در یک فایل xml ذخیره کردم و در سایت مقصد در رویداد لود یک صفحه اونها رو به صورت لینک نمایش دادم. فعلاً با دو تا سایت دیگه امتحان کردم

<?xml version="1.0" encoding="utf-8"?>
<Urls>
<url>http://www.sitename.ir/test</url>
<url>http://www.sitename.ir/mostafa</url>


</Urls>
و
نمایش لینک‌ها

protected void Page_Load(object sender, EventArgs e)
{
using (XmlTextReader reader = new XmlTextReader("http://secondSite.ir/employee.xml"))
{

while (reader.Read())
{

if (reader.NodeType == XmlNodeType.Text)
{

//Response.Write(reader.Value);
Literal1.Text += "<a href='" + reader.Value + "'>" + reader.Value + "</a><br>";
Response.Write("<br>");

}

}

}

}
نمی دونم اونقدر این روش ساده هست و اینکه دوستان به این مسئله اشاره نکردن که فکر میکنم شاید از نظر امنیتی مشکلی داشته باشه یا هر ایراد دیگه ای که من نمی دونم. ولی در هر صورت جواب داد.