• 1403/02/17

افزودن متد تغییر پسورد توسط کاربر :

سلام

کسی به سرویس های کاربر متد changePassword رو اضافه کرده تا حالا؟ 

میشه راهنمایی بکنید چجوری باید پسورد رو تغییر بدیم

مشکل اصلیم اینه نمیدونم وقتی کاربر پسورد فعلی رو وارد کرد چجوری با پسورد فعلی مقایسه بکنم

و اینکه متد resetPassword هم یک توکن بعنوان پارامتر ورودی میخواد ! اونو از کجا بیارمش؟

  • 1403/02/17
  • ساعت 22:09

منظور از ResetPassword همون فراموشی رمز عبور هست که سناریو اش این شکلیه که

شما یه لینک ارسال می کنید به موبایل یه ایمیل فرد و توی این لینک یه توکن ایجاد شده توسط خود SigninManager رو توش قرار میدید.

هش پسورد قبلی رو میتونید با هش پسورد جدید مقایسه کنید ولی من بلد نیستم کدش رو متاسفانه ولی یه سرچ بزنید احتمالا پیدا می کنید. ولی باید یه متدی باشه که یکی از overload هاش رمز فعلی رو بگیره.

اگه پیدا کردم همینجا براتون میفرستم


  • 1403/02/18
  • ساعت 14:27

با استفاده از درخواست SMTP میتونید ارسال کنید.

کدش تو اینترنت هست. فقط یا باید سرور داشته باشید یا اینکه با ایمیل gmail یا yahoo ارسال کنید که اون هم یه مقداری داستان داره.

شما برای حالت دمو توی Content لینک رو قرار بده و تست کن

موقع پابلیش و خرید سرور ایمیل رو درست کن.

اگر کدی که بریک پوینت گذاشتید کار نمی کنه به صورت دستی خودتون لینک رو بسازید که میشه

"/Account/ResetPassword?email={email}&token={token}"


  • 1403/02/18
  • ساعت 21:09

ببخشید ولی من کلا متوجه نشدم!

من قبلا براحتی اینکار رو برای رکاوری پسورد تو پروژه های ام وی سی انجام میدادم بدون این داستان هایی که شما گفتید

یعنی واقعا این معماری اینقدر کارها رو سخت و پیچیده میکنه!؟

عجب


  • 1403/02/18
  • ساعت 23:12

برای ارسال ایمیل شما باید خودتون یه اینترفیس و یه کلاس ازش بسازید.

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

توی Program.cs هم کانفیگش کنید.
اینم لینک متد تغییر رمز عبور
چون شما دارید توی یه لایه دیگه از متد Url.Action استفاده می کنید نمی تونه خودش  کنترلر ها رو پیدا کنه
شما به صورت دستی این آدرس رو بنویسید.
که میشه این


var resetPasswordUrl = "/Account/ResetPassword?email={email}&token={token}";

ببخشید یه مقداری پیچیده جواب دادم
 


  • 1403/02/19
  • ساعت 12:55

بازهم ممنون بابت پاسختون

من سرویس ارسال ایمیل رو مثل نمونه ای که استاد مدائنی در معماری توضیح داده اند، پیاده سازی کردم

اما نمیدونم apiKey رو چی بزنم؟ 


  • 1403/02/19
  • ساعت 14:04

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

من خودم نتونستم استفاده کنم.

با ایمیل گوگل بفرستید راحت تره


  • 1403/02/19
  • ساعت 20:41

دقیقا چه تغییراتی باید تو کدهای استاد بدم؟


  • 1403/02/19
  • ساعت 22:50

کلا سرویس رو عوض کنید

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


  • 1403/02/19
  • ساعت 23:11

مهندس اصلانی عزیز، ضمن تشکر مجدد،

 مشکل این معماری هستش .

تو این معماری نمیتونم کدها رو پیاده سازی بکنم

هرچی هم سرچ میکنم نمونه کد پیدا نمیکنم

اگر دوره استاد مدائنی رو دیده باشید متوجه میشید طبق مراحل خاصی کدهای ارسال ایمیل رو اضافه کرده اند، کجای کدها رو دستکاری بکنم؟


  • 1403/02/19
  • ساعت 23:54

کدهای EmailSender را به روش smtp تغییرش دادم اما باز ارور دارم و ایمیل ارسال نمیشه

اینهم کدهای مربوط به email Sender

لطفا راهنمایی بفرمایید کجا اشتباه کردم؟


  • 1403/02/19
  • ساعت 23:59

باید پورتش رو توی فایروال باز کنید.


  • 1403/02/20
  • ساعت 00:10

کجا؟ روی ویندوز خودم؟ میشه دقیقتر راهنمایی بفرمایید



  • 1403/02/20
  • ساعت 09:04

طبق آموزشی که فرستادین پورت 587 رو هم باز کردم اما کماکان ارور داره


  • 1403/02/20
  • ساعت 10:05

سلام دوست عزیزم خوبی؟

دوست من شماپسوردی که توی smtp گذاشتی رو چجوری بدست اوردی؟


  • 1403/02/20
  • ساعت 21:01

سلام خیلی ممنون

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

الان درست شد و ایمیل رو ارسال کرد

اما یک مشکل دیگه پیش اومده :

وقتی لینک ارسال شده به ایمیل رو کلیک میکنم و وارد صفحه تغییر رمز میشم، همه چی بدرستی کار میکنه تا میرسه به تابع resetpassword که نهایتا میگه invalidToken !!! حیلی جالبه توکن تولید شده و ارسال شده به ایمیل دقیقا همین توکنی هستش که به تابع تغییر پسورد داده میشه اما نمیدونم چرا میگه invalid

تبدیل هم انجام دادم اما تاثیری نداشت

string code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(request.Token));


  • 1403/02/23
  • ساعت 10:44

کاربرگرامی ! لطفا به پیام صوتی زیر گوش دهید.


  • 1403/02/23
  • ساعت 18:03

 

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

بله همه چی درسته و پارامترها رو هم کنترل کردم 

اما استاد یک چیز جالب برخورد کردم

من توکن تولیدی و دریافتی رو ریختم تو یک فایل txt و مقایسه کردمشون

متوجه شدم هنگام دریافت توکن برای تغییر پسورد دوتا علامت + را از بخش انتهایی توکن حذفش کرده!!!!

ببینید:

در بررسی بیشتر متوجه شدم هرجا علامت + توی توکن وجود داره حذفش کرده و space گذاشته!

عجیبه واقعا چکارش بکنم به نظرتون؟

 


  • 1403/02/23
  • ساعت 18:21

Replace کنید مثبت ها رو به اسپیس

احتمالا مشکلش از داستان های مسیر توی وب هست


  • 1403/02/23
  • ساعت 18:26

خب روی سرور مشکل پیش نمیاد؟ ،هنگام آپلود روی هاست


  • 1403/02/23
  • ساعت 18:43

نه


  • 1403/02/23
  • ساعت 19:36

سلام مجدد

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

جالب اینکه روی لوکال همه چی بدرستی کار میکنه

به نظر شما خطا از چی میتونه باشه؟

 


  • 1403/02/25
  • ساعت 11:22

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


  • 1403/02/25
  • ساعت 15:57

من خودم با این مشکل رو به رو شدم. هرچی گشتم راه حلی پیدا نکردم

با پشتیبانی سرور تماس بگیرید احتمالا کمک تون کنن


  • 1403/02/26
  • ساعت 08:01

سرور دست خودمه مهندس

ویندوز سرور هستش اینم مشخصاتش:


  • 1403/02/26
  • ساعت 08:31

روی سرور هم Rule باز کردن پورت رو ساختید؟

یه نرم افزار تست ارسال ایمیل Smtp نصب کنید امتحان کنید ببینید مشکل از کده یا از تنظیمات سرور

یه بار با مرورگر ویندوز سرور هم لاگین کنید توی ایمیلتون 

شاید چون با آی پی اش تا به حال کسی وارد نشده گوگل اجازه ارسال ایمیل نمیده 

وقتی امکان داره مشکل از SSL هم باشه. اگه مشکل از ارسال امن باشه توی کد از SSL هست.

راه حل دیگه ای به ذهنم نمی رسه

اگه جواب نداد خودتون هم یه تحقیقی توی اینترنت انجام بدید


  • 1403/02/26
  • ساعت 08:51

بله rule پورت 587 رو ایجاد کردم رو فایروال سرور

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

ssl مشکل داشته باشه چکار باید بکنم؟ از کد هست یعنی؟

 


  • 1403/02/26
  • ساعت 09:40

شما نسخه Desktop Experience ویندوز رو دارید.

پس میتونید با مرورگر وارد اینترنت بشید

یه بار به صورت عادی لاگین کنید IP تون جزو دستگاه های مجاز ثبت بشه

کلا SMTP بدون SSL اکثر درخواست هاش از دست می‌ره 


  • 1403/02/26
  • ساعت 10:31

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

این مورد بالاخره با روشهایی که گفتین حل شد

تشکر فراوان

زنده باشید

 


  • 1403/02/26
  • ساعت 10:36

الحمدلله 


logo-samandehi