سلام و خسته نباشید.
من می خوام که برای token فعال سازی باایمیل یک method بنویسم تا زمانی که پس از ثبت نام موفق از آن استفاده کنم.
نکته: همه ی کدهای مربوط به identity من در یک class library نوشته شده و فقط در لایه ی web از آن استفاده می کنم.
در کلاس مربوط به tokenGenerator فضای نام
using Microsoft.AspNetCore.Mvc;
را اضافه کردم، اما هنوز به url.action و request دسترسی ندارم و پروژه با خطا روبه رو می شه.
خطا در کد زیر است، نمی دونم چطور اصلاح کنم.
var emailMessage =
Url.Action("ConfirmEmail", "Account", new { username = identityUser.UserName, token = emailConfirmationToken }, Request.Scheme);
موفق باشید.
سلام عزیز.
به خاطر مسائل مربوط به HttpContext هستش. لینک زیر رو بررسی کنید :
https://stackoverflow.com/questions/20869222/how-to-use-url-action-in-a-class-file
راه های دیگه ای هم هستش البته.
سلام استاد. خسته نباشید.
هر کاری کردم مشکلم حل نشد.
یک سؤال دیگه اینه که نوع پروژه من RazorPage است و در لایه ی Application.core از interface و Service استفاده می کنم و در برنامه controller به نام Account ندارم.
دو روز هست که همین token generator تمام وقتم رو گرفته. هر چه زیاد تلاش می کنم برای حلش بیشتر در باتلاقش فرو می رم.
ممنون می شم اگه راهنمایی کنید.
موفق باشید.
برای Razor pages باید از Url.Page استفاده بکنید.
میتونین از LinkGenerator هم استفاده بکنید، مثال زیر :
var uri = _linkGenerator.GetUriByAction(
_httpContextAccessor.HttpContext,
"test", "home", new {id = request.Id );
نمونه از LinkGenerator و HttpContextAccessor رو از کانستراکتور دریافت کنید و طبق مثال بالا استفاده کنید، البته برای Razor باید از متود های دیگه اش مثل GetUriByPage استفاده کنید.