我正在使用Url.Action生成一个绝对网址,以便在电子邮件中发送。链接是在控制器内部生成的。
ConfirmLink = Url.Action(
"ConfirmEmail",
"Account",
new { userId = user.Id, code },
HttpContext.Request.Scheme
)出于某种原因,在本地,我得到了这样的结果:
http://localhost:5102/account/confirm-email?userId=10&code=CfDJ8JH5BJKUsPZDnCLwFc3HSEHfe9Fk00NHiJqk36VbvkDbbV39AI7HY5m9pXVItwYE9%2B9ElTcnBSZiDNQ%2FmO5lx1tSnuvDmhzdzGlCQCfPQVe%2B21Nw03uNuBWoO8HCVivqzfudti579bWiaLW6PuuQQimn449YymVjgV3R36HeQID26jTmAxizDTqOsF1%2FvQc5Zw%3D%3D但是我在staging/prod中得到了这个结果,没有使用domain/https协议:
http:///account/confirm-email?userId=10&code=CfDJ8JH5BJKUsPZDnCLwFc3HSEHfe9Fk00NHiJqk36VbvkDbbV39AI7HY5m9pXVItwYE9%2B9ElTcnBSZiDNQ%2FmO5lx1tSnuvDmhzdzGlCQCfPQVe%2B21Nw03uNuBWoO8HCVivqzfudti579bWiaLW6PuuQQimn449YymVjgV3R36HeQID26jTmAxizDTqOsF1%2FvQc5Zw%3D%3D我正在使用带有"Microsoft.AspNetCore.Mvc": "1.1.0"的ASP .NET核心。
发布到IIS的应用程序。
发布于 2017-07-28 11:29:40
我以前也遇到过同样的问题,下面的代码对我来说很好。
var ConfirmLink = Url.Action(
"ConfirmEmail",
"Account",
new { userId = user.Id, code },
HttpContext.Request.Scheme,
HttpContext.Request.Host.Value //HttpContext.Request.Host.ToString()
)或手动
var ConfirmLink = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}{Url.Action("ConfirmEmail", "Account")}";发布于 2016-12-16 12:41:47
尝试添加主机参数:
ConfirmLink = Url.Action(
"ConfirmEmail",
"Account",
new { userId = user.Id, code },
HttpContext.Request.Scheme,
HttpContext.Request.Host.Host
)https://stackoverflow.com/questions/41155149
复制相似问题