'HttpRequest'不包含'Url'的定义

  • 本文关键字:定义 Url 包含 HttpRequest c#
  • 更新时间 :
  • 英文 :

public IActionResult Register(SysUser usr)
{
if (!ModelState.IsValid)
{
ViewData["Message"] = "Invalid Input";
ViewData["MsgType"] = "warning";
return View("UserRegister");
}
else
{
string insert =
@"INSERT INTO SysUser (UserId, UserPw, FullName, Email, CorporateId, UserRole) VALUES
('{0}', HASHBYTES('SHA1', '{1}'), '{2}', '{3}', {4}, 'user')";
if (DBUtl.ExecSQL(insert, usr.UserId, usr.UserPw, usr.FullName, usr.Email) == 1)
{
usr.ActivationToken = Guid.NewGuid().ToString();
if (usr.ActivationToken != null)
{
string inst = @"INSERT INTO SysUser(Active)VALUES('1')";
if (DBUtl.ExecSQL(inst, usr.Active) == 1)
{

string template = @"Hi {0},<br/><br/>
you have successfully created an account at Parkway Pantai Health Screening Portal.
Please click on the link below to verify your email address and complete your registration. Your user id is <b>{1}</b> and password is <b>{2}</b>.
<br/>";
template+= "</br><a href= '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationToken"+ usr.ActivationToken
) + "'>Click here to activate your account.</a>";

string title = "Registration Successul - Welcome";
string message = String.Format(template, usr.FullName, usr.UserId, usr.UserPw);
string result = "";
bool outcome = false;
// TODO: L10 Task 2b - Call EmailUtl.SendEmail to send email
//                     Uncomment the following line with you are done
outcome = EmailUtl.SendEmail(usr.Email, title, message, out result);
if (outcome)
{
ViewData["Message"] = "User Successfully Registered";
ViewData["MsgType"] = "success";
}
else
{
ViewData["Message"] = result;
ViewData["MsgType"] = "warning";
}
}
else
{
ViewData["Message"] = DBUtl.DB_Message;
ViewData["MsgType"] = "danger";
}
}
}
return View("UserRegister");
}
}

大家好,我正在尝试使用Guid.NewGuid((发送激活链接,当我想使用"生成链接时;Request.Url.AbsoluteUri.Replace";它显示了一个错误,上面写着:

"HttpRequest"不包含"Url"的定义,并且找不到接受第一个类型为"HttpRequest"的参数的可访问扩展方法"Url"(是否缺少using指令或程序集引用?(。

有什么解决办法吗?我使用的框架是c#.net框架3.1。提前感谢您的帮助!

发送激活链接后如何处理验证的相关问题。

您可以使用以下方法生成网站的基本url:

string baseUrl = string.Format("{0}://{1}", 
HttpContext.Request.Scheme, HttpContext.Request.Host);

其中HttpContext.Request.Scheme返回http/https
HttpContext.Request.Host是主机,即(localhost或www.example.com(。
因此,基本上您将获得https://www.example.com

然后,您可以将Guid组合为查询字符串,并将其发送给用户。

var activationUrl = $"{baseUrl}/Controller/Action?code={Guid.NewGuid()}";

注意:我使用变异体组合字符串只是为了得到答案。从C#6开始,可以使用更高版本。

最新更新