OmMiD_MtWo
یک شنبه 22 فروردین 1395, 18:27 عصر
با سلام و عرض خسته نباشید خدمت اساتید گرامی
بنده از Identity برای امنیت سایت استفاده کردم و با استفاده از کدی که در Register Action به صورت پیش فرض وجود دارد، ایمیل تاییدی رو به ایمیل کاربر میفرستم:
string code = await UserManager.GenerateEmailConfirmationTokenAsync(us er.Id);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
حال قصد دارم تا در برنامه اعلام کنم که این لینک فقط برای بار اول که کاربر بر روی آن کلیک میکند، فعال است و اگر از داخل ایمیل برای بار دوم روی لینک کلیک کرد، لینک غیرفعال باشد و یا به کاربر اعلام کنم که همچین لینکی وجود ندارد. چه طور در برنامه این رو پیاده سازی کنم؟ به غیر از اینکه userId رو از QueryString بگیرم و از دیتابیس چک کنم که اگر ایمیل کاربر فعال شده بود، به کاربر پیغام بدهد که لینک فعالسازی استفاده شده است! من قصد دارم تا به طور کلی لینک فعالسازی غیرفعال باشد.
سوال بعدی این که این در خط اول یک متغیر از نوع string تعریف شده که یک کد فعالسازی برای ایمیل درست میکنه! من هر چی تو برنامه رو جستجو کردم، ندیدم که این کد برای یک کاربر جایی ذخیره بشه حتی در کوکی! پس این کجا ذخیره میشه که در Action ConfirmEmail ، این کد به همراه userId رو میگیره و ایمیل اون کاربر رو با استفاده از این کد فعال میکنه! اگر کسی از دوستان میدونه که این کد در کجا ذخیره میشه، ممنون میشم بگه...
بنده از Identity برای امنیت سایت استفاده کردم و با استفاده از کدی که در Register Action به صورت پیش فرض وجود دارد، ایمیل تاییدی رو به ایمیل کاربر میفرستم:
string code = await UserManager.GenerateEmailConfirmationTokenAsync(us er.Id);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
حال قصد دارم تا در برنامه اعلام کنم که این لینک فقط برای بار اول که کاربر بر روی آن کلیک میکند، فعال است و اگر از داخل ایمیل برای بار دوم روی لینک کلیک کرد، لینک غیرفعال باشد و یا به کاربر اعلام کنم که همچین لینکی وجود ندارد. چه طور در برنامه این رو پیاده سازی کنم؟ به غیر از اینکه userId رو از QueryString بگیرم و از دیتابیس چک کنم که اگر ایمیل کاربر فعال شده بود، به کاربر پیغام بدهد که لینک فعالسازی استفاده شده است! من قصد دارم تا به طور کلی لینک فعالسازی غیرفعال باشد.
سوال بعدی این که این در خط اول یک متغیر از نوع string تعریف شده که یک کد فعالسازی برای ایمیل درست میکنه! من هر چی تو برنامه رو جستجو کردم، ندیدم که این کد برای یک کاربر جایی ذخیره بشه حتی در کوکی! پس این کجا ذخیره میشه که در Action ConfirmEmail ، این کد به همراه userId رو میگیره و ایمیل اون کاربر رو با استفاده از این کد فعال میکنه! اگر کسی از دوستان میدونه که این کد در کجا ذخیره میشه، ممنون میشم بگه...