ورود

View Full Version : سوال: چگونه در web api احراز هویت کنم؟



blackwater
چهارشنبه 09 خرداد 1397, 07:35 صبح
سلام.
من یه سایت با MVC5 نوشتم و الان می خوام برای اون webapi بنویسم تا دوستم تو برنامه اندروید که می نویسه بتونه به سایت متصل بشه و از api استفاده کنه و داده ها رو تو برنامه اندروید نمایش بده.

من در سایتم از identity 2.0 استفاده کردم . اما نمی دونم برای web api هم باید از identity برای احراز هویت استفاده کنم؟؟ تا هر کسی نتونه صفحات api من رو ببینه؟
و نفری که برنامه اندروید رو می نویسه چطوری باید متد ارسال کنه تا بتونه صفحات رو ببینه؟؟

اگه مقاله ای دارین که توضیح میده ممنون میشم معرفی کنید.

AmiN0012
چهارشنبه 09 خرداد 1397, 08:20 صبح
سلام دوست عزیز بهترین روش از OWIN میباشد.
همه جا از این تکنولوژی استفاده کن.
لینک خارجی:
http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
لینک فارسی:

https://www.dotnettips.info/post/1720/owin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84

hakim22
چهارشنبه 09 خرداد 1397, 14:32 عصر
با همون Identity به راحتی می توانید سیستم امنیتی مورد نظر رو پیاده کنید.

برای ارتباط وب سرویس بهترین راه استفاده از token هست. توکن یک کد امنیتی که درون Header هر درخواست ارسال میشه. برنامه نویس اندروید شما نام کاربری و رمز عبور کار رو برای بار اول به سرور ارسال میکنه و در ازاش کد توکن رو دریافت می کنه. بعد باید در درخواستی مقدار Token رو دوباره به سرور بفرسته (درون Header)

وقتی یک پروژه ی WebAPI رو با Identity می سازید به صورت پیشفرض روش توکن تنظیم شده فقط کافیه از کدهای درون اون استفاده کنید (نیاز به تغییر نداره)
بهتره از یک پروژه ی مجزا برای وب سرویس استفاده کنید. مثلا api.myweb.com و سایت جدا داشته باشید.

r4hgozar
جمعه 11 خرداد 1397, 09:37 صبح
با همون Identity به راحتی می توانید سیستم امنیتی مورد نظر رو پیاده کنید.

برای ارتباط وب سرویس بهترین راه استفاده از token هست. توکن یک کد امنیتی که درون Header هر درخواست ارسال میشه. برنامه نویس اندروید شما نام کاربری و رمز عبور کار رو برای بار اول به سرور ارسال میکنه و در ازاش کد توکن رو دریافت می کنه. بعد باید در درخواستی مقدار Token رو دوباره به سرور بفرسته (درون Header)

وقتی یک پروژه ی WebAPI رو با Identity می سازید به صورت پیشفرض روش توکن تنظیم شده فقط کافیه از کدهای درون اون استفاده کنید (نیاز به تغییر نداره)
بهتره از یک پروژه ی مجزا برای وب سرویس استفاده کنید. مثلا api.myweb.com و سایت جدا داشته باشید.


یعنی یک subdomin و یک دیتابیس جدید داشته باشیم؟
اما این کار در هاست قابل انحام نیست اگر دیتابیس 2 تا شود.

hakim22
جمعه 11 خرداد 1397, 12:25 عصر
نیاز به دیتابیس جدا ندارید. فقط وب سرویس رو در پروژه مجزا قرار بدید. البته انتخاب با خود شماست.