ورود

View Full Version : سوال: امنیت در Wcf



explod_javad
سه شنبه 24 آبان 1390, 18:40 عصر
با سلام خدمت همه دوستان
من میخام در پروژه ای از Wcf استفاده کنم.
سوالم رو با یک مثال از کاری که میخام انجام بدم ، مطرح میکنم.
پروژه فرضی :
یک فروشگاه زنجیره ای در سراسر کشور (مثلا 250 فروشگاه) که قرار هست اطلاعات مربوط به خرید و فروش کالا های آن بصورت انلاین روی دیتابیس اصلی ثبت بشه.

- کلاینت Win Form است
- بستر ارتباطی قابل استفاده در آن فقط اینترنت پرسرعت می باشد.

میخام یک سرویس Wcf ایجاد کنم که داده های مورد نظر توسط آن در دیتا بیس ذخیره بشه.
چالش ها

1- آیا Wcf امکان تامین امنیت را دارد ، اساسا برای این پروژه قابل استفاده است؟
2- چون بستر اینترنت است و امکان دسترسی به Wcf برای همه وجود دارد چطور میشه کاری کرد که فقط برنامه نوشته شده من( desktop app)فقط بتونه با اون ارتباط برقرار کنه . نمیخام اسم توابع و یا هرچیز دیگه از پروژه لو بره .
svcutil.exe http://localhost:4489/StudentService.svc?wsdl
با اضافه کردن کلمه wsdl به انتهای سرویس در مرورگر میشه از نام و مشخصات توابع مطلع شد

اگه کسی در این مورد که شرح دادم تجربه داره لطفا راهنمایی کنه .
ممنون

explod_javad
پنج شنبه 26 آبان 1390, 14:19 عصر
کسی در مورد سوال من اطلاعات نداره ؟:متفکر:

ایمان اختیاری
شنبه 28 آبان 1390, 08:24 صبح
بنده برای مرکزی یک برنامه نوشتم که از وب سرویس جایی که wcf اطلاعات مالی دریافت می کرد . البته بنده زیاد در این موارد وارد نشدم اما چیزی که دیدم رو عرض می کنم.
در اولین وهله ما باید برای مرکز wcf تایید می شدیم که سیستم فایروال اونا این قسمت رو به عهده داشت . و سر این موضوع کلی برامون مشکل ایجاد شد و بالاخره تونستیم توابع رو ببینیم . ( قسمت رویت توابع)
در وهله دوم علاوه بر نام کاربری و رمز عبور ( که حساس به حروف بزرگ و کوچیک بود ) یک کد اختصاصی هم گرفتیم که حتما باید در توابعی که مورد استفاده قرار می دادیم وارد می کردیم .
برای کنجکاوی اطلاعاتی که از مرکز می اومد رو آنالیز کردم و دیدم تماما کد شده هستن .. البته اون طور که بعدا بیشتر کار کردم شنیدم که از الگوریتم های تولیدی خودشون برای کد کردن استفاده می کردن ..
در هر صورت راه کارهای زیادی هست ..

rahmatr
جمعه 02 دی 1390, 00:20 صبح
یک فروشگاه زنجیره ای در سراسر کشور (مثلا 250 فروشگاه) که قرار هست اطلاعات مربوط به خرید و فروش کالا های آن بصورت انلاین روی دیتابیس اصلی ثبت بشه.

چون بستر اینترنت است و امکان دسترسی به Wcf برای همه وجود دارد چطور میشه کاری کرد که فقط برنامه نوشته شده من( desktop app)فقط بتونه با اون ارتباط برقرار کنه . نمیخام اسم توابع و یا هرچیز دیگه از پروژه لو بره .
فکر کنم برای این مورد VPN بهترین راه حل است. در اینصورت هم از اینترنت استفاده می کنید و هم دیگران به WCF شما دسترسی ندارند.

اینجا را هم ببینید :
Authentication and Authorization in WCF Services (http://msdn.microsoft.com/en-us/library/ff406125.aspx)

in_chand_nafar
پنج شنبه 08 دی 1390, 19:41 عصر
دوست عزيز شما Authentication و Authorization‌در WCF مي توانيد انجام دهيد
روش هايي كه مي توانيد از آن استفاده كنيد
Membership
Form Authentication
Windows Authentication
معمولا در اكثر پروژه هايي كه من ديدم از روش Form Authentication استفاده مي شود(كساني كه داراي User , Pass هستند امكان استفاده از متدهاي موجود در سرويس را دارند)
http://msdn.microsoft.com/en-us/library/bb398990.aspx
http://www.codeproject.com/Articles/187198/Various-Clients-and-Forms-Authentication?display=Print
http://jedej.com/2010/09/21/wcf-service-using-usernamepassword-authentication/
يه خورده توي اين لينك ها و لينكي كه دوست عزيزمان rahmatr اشاره كردن كردن چرخ بزن تا بدوني چي كار بكني اگر اشكالي داشتي در خدمت هستيم