نمایش نتایج 1 تا 21 از 21

نام تاپیک: ایجاد لینک فعال سازی در asp.net

  1. #1

    Question ایجاد لینک فعال سازی در asp.net

    با سلام خدمت تمام برنامه نویسان ایرانی

    یه سوال داشتم. میخواستم ببینم کسی میدونه چطور میشه لینک فعال سازی برای کاربری که تازه ثبت نام کرده ایجاد و به میلش فرستاد؟
    حالا به میل فرستادنش مشکل نیست فقط در رابطه با لینک یه ایده ای که توی ذهنمه اینه که مثلا من بیام userid تولید شده برای اون کاربر رو به عنوان querystring به لینک اضافه کنم و براش بفرستم. بعد که روش کلیک کرد با توجه به اون userid فیلد مربوط به فعال شدن کاربر رو true کنم.
    اگه ایدم درسته بگین!
    با تشکر

  2. #2
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: ایجاد لینک فعال سازی در asp.net

    خوبه!
    ID هم طبیعتا باید Unique باشه.

  3. #3
    کاربر دائمی آواتار maxpayn2
    تاریخ عضویت
    مهر 1385
    محل زندگی
    طبقه سوم - اطاق اول - جولوی مانیتور - روی صندلی
    پست
    1,068

    نقل قول: ایجاد لینک فعال سازی در asp.net

    اگه هر دفعه لینک ثابتی رو بفرستید و فقط user id به اون اضافه بشه ، هر کسی با دونستن user id نفر دیگه میتونه بجاش فعال سازی رو انجام بده و ...

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مهاباد
    پست
    356

    نقل قول: ایجاد لینک فعال سازی در asp.net

    بله . براي ID ميتونيد از Guid استفاده كنيد . كسي UserId ديگري رو نميدونه . چون UserId به ايميل اون شخص ارسال ميشه . و يا ميتونيد خودتون QueryString هايي رو خودتون با كدنويسي هاي پيشرفته ايجاد كنيد و از اون استفاده كنيد . در ضمن كنترل كنيد كه براي هر كاربر فقط يك بار عمل فعالسازي انجام بشه . اگه براي كاربري كد اشتباه ثبت شد ميتونيد كاربر رو غير فعال كنيد . اين هم اقدامات امنيتي .

  5. #5
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: ایجاد لینک فعال سازی در asp.net

    چون عمل فعال سازی ممکنه در مواقع مختلفی ( البته بسته به مورد استفاده شما) انجام بپذیرد، بهتر است هر گاه یک کاربر نیاز به فعال سازی داشت، یک کلید رمزنگاری متقارن ایجاد شود و در پایگاه داده ذخیره شود. سپس پارامتر های لینک فعال سازی اینطوری ساخته بشن.
    1. UserID
    2. رمز شده ی UserID
    کاملا امنه.

  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مهاباد
    پست
    356

    نقل قول: ایجاد لینک فعال سازی در asp.net

    ببينيد شما برنامه نويس هستيد و همه چيز تحت كنترل شماست . هر وقت كاربرتون غير فعال شد يك ID جديد توليد كنيد و اون رو در قسمت ID مربوط به كاربرتون ثبت كنيد و يك Email براي فعالسازي مجددش بفرستيد . همه چيز تحت كنترل شماست و ميتونيد هر كاري انجام بديد ....

  7. #7

    نقل قول: ایجاد لینک فعال سازی در asp.net

    یه سوال:

    آیا میشه به این صورت لینک فعال سازی رو ساخت: بگیم ما که User_ID رو داریم و از Email شخص توسط QueryString می خونیم. بیایم یه صفحه aspx بسازیم و یه متد توش طراحی کنیم که در Page_Load اجرا بشه. چی کار می کنه User_ID رو می گیره و می ره تو جدول Users مثلا فیلد State یا Status رو True می کنه. بعد Redirect بشه به یک صفحه دیگه.

    این روش خوبه یا بد؟

  8. #8
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: ایجاد لینک فعال سازی در asp.net

    در کنار User_ID یه ID یکتای فعال سازی یک بار مصرف هم باید باشه. اون رو ذخیزه کنیم و توی QueryString هم قرار بدیم.
    چون User_ID معمولا ثابته و ممکنه افراد دیگه به دستش بیارن. پس نباید بتونن کاربر رو فعال کنن.
    میتونید یه جدول بسازید که حاوی User_ID (کلید خارجی از جدول Users و کلید اصلی همین جدول) و یک Activation_ID که کد فعال سازی باشه.
    کاربر که غیر فعال شد یه رکورد توی این جدول اضافه می شه، فعال هم که شد، حذف می شه.

  9. #9

    نقل قول: ایجاد لینک فعال سازی در asp.net

    من باشم از guide استفاده می کنم

  10. #10
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: ایجاد لینک فعال سازی در ASP.NET

    نقل قول نوشته شده توسط iman_ad مشاهده تاپیک
    من باشم از guide استفاده می کنم
    مهم اینه که یکتا و کاملا تصادفی باشه. 32 کاراکتر طولش باشه بد نیست.

  11. #11
    کاربر دائمی آواتار shirin_sh1024
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    پست
    136

    نقل قول: ایجاد لینک فعال سازی در ASP.NET

    میتونیم یه جدول Requset بسازیم که 4 تا فیلد ID,User_ID,Type,vertify رو داشته باشه(user_ID :آیدی کاربر ، ID :آیدی درخواست ، Type:نوع درخواست، vertify:برای تایید درخواست از طرف کابر یعنی وقتی رو لینکی که فرستادیم به ایمیلش کلیک کنه true بشه)
    اینجوری به هر درخواستی که از طرف کاربر میاد که بستگی به نوعش(فیلد Type) میتونه مختلف باشه مثله درخواست فعال شدن اکانت یا درخواست تعویض رمز و ... یه آیدی(یعنی فیلد ID در جدول Rquest) نسبت بدیم(که میشه تصادفی هم ایجادش کرد) و توسط Querystring اون آیدی رو بفرستیم و دوباره همون رو پس بگیریم و در صورت trueبودن vertify تغییرات رو اعمال کنیم.

  12. #12
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: ایجاد لینک فعال سازی در asp.net

    ID ها رو نباید نگه داشت. یک باید یک بار مصرف باشه. هرچه بیشتر نگه دارید احتمال لو رفتنش بیشتر میشه! به راه حل پست شماره 9 Type و LifeTime رو هم اضافه کنید، خیلی خوب میشه!

  13. #13
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مهاباد
    پست
    356

    نقل قول: ایجاد لینک فعال سازی در asp.net

    ببینید من که میگم خیلی ساده تر میشه حلش کرد . ببینید قرار نیست UserID رو به کسی نشون بدیم . توسط Guid یا چند تا Guid یک رشته ی تصادفی تولید میکنیم و اون رو تو جدول کاربران برای کاربر ذخیره میکنیم . یه ایمیل هم با همون QueryString و Guid تولید شده به ایمیل کاربر میفرستیم . خوب با کلیک بر روی اون کاربر با یه QueryString به سایت برمیگرده و ما با اون QueryString کاربر مورد نظر رو فعال میکنیم .
    آیا این روش مشکلی داره ؟

  14. #14
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: ایجاد لینک فعال سازی در asp.net

    البته چیزی که میگید مشکلی نداره! ولی دوستان دنبال بهترین و جامع ترین راه اند، نه ساده ترین راه.
    افزودن تمهیدات امنیتی بسته گی به مورد استفاده داره و اهمیت موضوع داره.

  15. #15
    کاربر دائمی آواتار shirin_sh1024
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    پست
    136

    نقل قول: ایجاد لینک فعال سازی در ASP.NET

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

  16. #16
    کاربر دائمی آواتار shirin_sh1024
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    پست
    136

    نقل قول: ایجاد لینک فعال سازی در ASP.NET

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

  17. #17
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مهاباد
    پست
    356
    میخوام بدونم که این روش چه مشکل امنیتی داره ؟

    یه فیلد میزاریم با اسم ActivationCode و در اون کدفعالسازی رو ذخیره میکنیم .

  18. #18
    کاربر دائمی آواتار hamedsabzian
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بروجرد
    پست
    314

    نقل قول: ایجاد لینک فعال سازی در ASP.NET

    نقل قول نوشته شده توسط profnami مشاهده تاپیک
    میخوام بدونم که این روش چه مشکل امنیتی داره ؟

    یه فیلد میزاریم با اسم ActivationCode و در اون کدفعالسازی رو ذخیره میکنیم .
    بنده صریحا مشکل امنیتی نمی بینم. اما ...
    1. بهتره یک جدول جداگانه برای ذخیره ی این کدها در نظر بگیرید که بعد از انجام عمل، حذف بشه.
    2. بهتره برای انجام عمل یه مهلت قرار بدید تا مجبور نباشید تا ابد منتظر فعال سازی کاربر بمونید.
    3. شما که دارید یه جدول دیگه میسازید، پس یه فیلد Type هم بهش اضافه کنید که فقط مختص قعال سازی نباشه و بتونید توش کارای دیگه ای که بنابه منطق برنامتون ممکنه نیاز باشه، استفاده کنید.

  19. #19
    کاربر تازه وارد آواتار HDDSoft2001
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    یه جای خوب
    پست
    98

    نقل قول: ایجاد لینک فعال سازی در asp.net

    با سلام
    دوستان به نظر من خیلی خیلی ساده تر میتونیم این مسئله حل کنیم!!! فرض کنیم جدول کاربران ما شامل فیلدهای زیر باشه:
    { UserID, UserName, pass, Email, Status }
    بسیار خوب فیلد کد کاربر که خودکاره و برای هرکسی منحصر به فرده, از طرفی نام کاربری و ایمیل نیز خاصیت یکتایی دارند به صورت منطقی!! خب با این تفاسیر کد فعال سازی رو به صورت زیر درست می کنیم که احتمال هکش به صفر برسه.
    در لینک ایجاد شده نام کاربری یا کد کاربری + یک هش تولید شده از ترکیب (کد کاربری + نام کاربری + ایمیل + رشته ی ثابت برای امنیت بیشتر ) ایجاد می کنیم. در این حالت فقط کد کاربری و این رشته ی هش شده نمایش داده میشود که فک نکنم کسی بفهمه چیه.
    زمانی که هم این صفحه با این لینک درخواست شد, دقیقا عکس این عمل (کرک) را انجام می دهیم تا از صحت درخواست مطمئن شویم. بدین ترتیب که مثلا کد کاربری 1000 توسط لینک فرستاده شده است, این رکورد را در جدول کاربران یافته, و این مراحل هش را روی این رکورد مورد نظر انجام می دهیم, حال اگر رشته ی بدست آمده مطابقت داشت با رشته ی ارسال شده توسط لینک, نتیجه میگیریم که این درخواست, درخواست امن است و کاربر باید فعال شود, در غیر این صورت متوجه غیرقانونی بودن درخواست شده و جلوی آن را می گیریم. (مثلا ای پی آن را ذخیره و برای مدت زمانی مشخص درخواست های ارسال شده از طرف این ای پی را نادیده می گیریم و از این جور کارها البته اگه حوصلشو دارین!!!!!!!!!!!!)
    به همین راحتی!!!!!!!!!
    به عنوان مثال:

    ActivationUser.aspx?ID=283&Code=hdbfjhvdSBDkjzdbvj zhdn,zmnbvmvb
    برای امنیت بیشتر می توانید هنگام ساختن لینک به کد کاربری مقداری تعیین شده اضافه کنید که حتی شماره رکود شما هم فهمیده نشود. خلاصه خیلی مسائل میتونین پیاده سازی کنین.

    موفق باشید
    آخرین ویرایش به وسیله HDDSoft2001 : پنج شنبه 23 دی 1389 در 18:02 عصر

  20. #20
    کاربر دائمی آواتار mehrdad201
    تاریخ عضویت
    تیر 1386
    محل زندگی
    شمال ایران (مازندران)
    پست
    587

    نقل قول: ایجاد لینک فعال سازی در asp.net

    در مورد این قضیه دوستان سمپلی پیدا کردند ؟ چه در این سایت چه در سایتهای خارجی

  21. #21
    کاربر دائمی آواتار javad_r_85
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    590

    نقل قول: ایجاد لینک فعال سازی در asp.net

    نقل قول نوشته شده توسط profnami مشاهده تاپیک
    میخوام بدونم که این روش چه مشکل امنیتی داره ؟

    یه فیلد میزاریم با اسم ActivationCode و در اون کدفعالسازی رو ذخیره میکنیم .
    به نظم منم این روش خوبه البته بهتره یه فیلد دیگه در همون جدول یا جدول دیگر به این فیلد اضافه بشه با نام Accepted و از نوع بولین باشه یعنی زمانی که فعال شد مقدارش true بشه و وقتی کاربر می خواد وارد شه اول اینا چک کنه اگر false بود با پیغامی به او نشان دهد که هنوز نام کاربری اون فعال نشده و از نظر امنیتی فکر نکنم مشکلی داشته باشه چون این قسمت که به وسیله کد هست و برای کد فعال سازی نیز همون طوری که اشاره شد بهتره Guid باشه چون هم منحصر به فرده و هم اینکه الگوریتم مشخصی نداره تا کسی بخواد از اون در کوئری استرینگ استفاده کنه.......

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

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