چه تکنولوژی می‌خواهید یاد بگیرید؟

نظرات و انتقادات خود را با ما در میان بگذارید.

آپدیت روزانه

بیش از 1000 پست آموزشی

نیازهای روز

احزار هویت کاربران با استفاده از شبکه StackExchange در ASP.Net MVC

در این مقاله با سرویس عمومی StackExchange جهت احراز هویت کاربران در پروژه ASP.Net MVC خواهیم پرداخت.

stack_exchange logo

مقدمه:

شبکه StackExchange از بزرگترین شبکه‌های پرسش و پاسخ(Q&A) است که در زمینه‌های مختلف از جمله برنامه‌نویسی گرفته تا آشپزی، دوچرخه، شطرنج و ... را پوشش می‌دهد. شبکه StackExchange بالای 130 وب‌گاه پرسش و پاسخ در زمینه‌های مختلف را در بر دارد که شروع این شبکه با وبگاه Stack Overflow که در سال 2008 میلادی توسط آقایان Joel Spolsky و Jeff Atwood ایجاد گردید.

اکنون در این مقاله قصد داریم نحوه احراز هویت کاربران با استفاده از این شبکه اجتماعی در پروژه ASP.Net MVC را پیاده سازی کنیم.

در این بخش جهت ورود اعضا با شبکه StackExchange به سایت با حساب کاربری لازم است یک درخواست Application در سایت StackExchange ایجاد نمایم. بعد از ثبت موفقیت آمیز درخواست یک Client ID و Client Secret به شما تعلق می‌گیرد و نهایت در پروژه ASP.Net MVC تعریف خواهد شد.

نکته: لازم است توجه کنید این مقاله به صورت کامل تمامی بحث‌های مربوطه را در بر نخواهد گرفت و فقط پیاده سازی و هویت سنجی کاربران با استفاده از این شبکه را در بر میگیرد.

ایجاد پروژه جدید:

در صورتی که پروژه از قبل ایجاد نکرده‌اید، کافیست با کلیک بر روی Project در زیر منو New ویژوال استودیو کلیک کنید تا دیالوگ ایجاد پروژه جدید نمایان شود.

 

ایجاد پروژه جدید در ویژوال استودیو

 

 در تب Templates آیتم Web را کلیک و ASP.Net Application جهت ایجاد پروژه جدید انتخاب، نام و مسیر پروژه وارد نموده و بر روی دکمه OK کلیک کنید.

 

ایجاد پروژه جدید ASP.Net MVC در ویژوال استودیو

 

 در دیالوگ انتخاب نوع پروژه مطما باشید قالب MVC و Authentication بر روی “Individual Accounts”  فعال باشد.

انتخاب پروژه و تنظیم کردن Individual Accounts

 

 

 ایجاد برنامه جدید در StackExchange:

جهت هویت‌سنجی با استفاده از این شبکه لازم است یک برنامه جدید ایجاد کنید، قبل از هر کاری یک حساب کاربری در StackExchange ایجاد نماید سپس با حساب ایجاد شده در این شبکه به بخش (StackExchange API(Stack Apps مراجعه و بر روی لینک Register for an App Key کلیک کنید. 

api.stackexchange

 

اگر اولین بار است در Stack Apps ثبت نام می‌کنید در گام اول از شما سوال پرسیده می‌شود آیا مایل به ایجاد یک حساب در Stack Apps می‌باشید.
حال لازم است اطلاعات درخواستی را وارد نماید، نام پروژه، توضیحات را وارد و در بخش OAuth Domain لینک برگشتی(Callback Domain)، در صورتی که به صورت لوکال در حال استفاده می‌باشید کافیست مقدار localhost را وارد و در Application Website نام سایت.
توجه: در پایان مطما باشید چک باکس "Enable Client Side OAuth Flow" را انتخاب نکرده اید.

api.stackexchange -register your v2.0 application

 

 در نهایت بعد از کلیک بر روی دکمه Create Your Application، اطلاعات لازم جهت استفاده در پروژه ASP.Net MVC برای شما نمایان خواهد شد، مقادیر Client ID, Client Secret و Key را بخاطر بسپارید.

api.stackexchange client value

 

 

فعال سازی هویت سنجی با استفاده از شبکه StackExchange در پروژه ASP.Net MVC:

در این بخش دستور Owin.Security.Providers در کنسول کپی و اجرا کنید تا بسته ناگت نصب شود، همچنین می‌توان بر روی Reference کلیک راست نموده و Manage NuGet Packages را انتخاب کنید تا دیالوگ Nuget باز شود و در پنل جستجو بسته ناگت Owin.Security.Providers را جستجو و آن را نصب کنید.

owin.security.providers nuget package

 

فایل Startup.Auth در پوشه App_Start ریشه پروژه باز کنید. دستور زیر را به بخش Usingهای فایل اضافه نماید:

using Owin.Security.Providers.StackExchange; 

جهت فراخوانی سرویس StackExchange لازم است متد app.UseStackExchangeAuthentication و مقدار ClientID ، Client Secret و Key به عنوان پارامتر به این متد پاس داده شود.

app.UseStackExchangeAuthentication(clientId: "4457",clientSecret: "WMAEuXft*cxT61E)exUtWw((",key: "fwdkzo)jTjT)dYP5IiwULg((");

مطما باشید مقادیر وارد شده برای Client ID،  Key و Client Secret همان مقادیر می‌باشد که بعد از ثبت نهایی برنامه در Stack Apps برای شما اختصاص یافت.

تست برنامه:

پروژه رو اجرا کنید و به صفحه لاگین وارد شوید:

api.stackexchange -use a local account to log in

 

بر روی دکمه StackExchange کلیک کنید تا به صفحه هویت سنجی StackExchange هدایت شوید اکنون بر روی Approve کلیک کنید.

api.stackexchange -this app needs these permissions

 

در صورت کلیک بر روی Approve به سایت هدایت کننده باز خواهید گشت، البته بعد از برگشت لازم است ایمیل خود را در بخش ثبت نام وارد کنید، ایمیل وارد شده به عنوان نام کاربری درج خواهد شد، البته در سناریوهای ممکن است بجای ایمیل نام کاربری از کاربر درخواست شود، که در این صورت کافیست مقدار Label ایمیل به Username تغییر یابد(توجه شود الزامی است نام وارد شده برسی شود از قبل در دیتابیس وجود نداشته باشد).

associate your stackexchange account

 

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

مآخذ:

برای دانلود پروژه اینجا کلیک کنید.

...

امید نصری

0 نظر:

تعداد دیدگاه‌های کاربران : 0 دیدگاه
مهمان گرامی! برای ارسال نظر نیاز است وارد سایت شوید.


You must log on to comment.