gpt4 book ai didi

asp.net-mvc - 在 ASP.NET WEB API Controller 中确认后重定向

转载 作者:行者123 更新时间:2023-12-02 14:30:42 25 4
gpt4 key购买 nike

我有网络 API 帐户 Controller ,我可以在其中确认用户电子邮件

    [System.Web.Http.AllowAnonymous]
[System.Web.Http.HttpGet]
[System.Web.Http.Route("ConfirmEmail", Name = "ConfirmEmailRoute")]
public async Task<IHttpActionResult> ConfirmEmail(string userId = "", string code = "")
{
if (string.IsNullOrWhiteSpace(userId) || string.IsNullOrWhiteSpace(code))
{
ModelState.AddModelError("", "User Id and Code are required");
return BadRequest(ModelState);
}

IdentityResult result = await this.AppUserManager.ConfirmEmailAsync(userId, code);

if (result.Succeeded)
{
return Ok();
}
else
{
return GetErrorResult(result);
}
}
}

当用户单击电子邮件中的确认链接时,将调用此方法。之后我想将其重定向到“ConfirmidSuccessively”页面

在 MVC 中我们可以这样做:

return View("ConfirmidSuccessfully");

还有其他重定向方法,例如:

var response = Request.CreateResponse(HttpStatusCode.Moved);
response.Headers.Location = new Uri("/ConfirmidSuccessfully");
return response;

其实有2个问题:根据WEB API从web api方法重定向是否好,或者有更好的方法最合适的方法是什么

最佳答案

当您使用 REST 时,重定向到 View 或网页并不是一个好习惯,因此使用 ASP.Net Web API。

只需向客户端返回成功状态代码即可。让客户端自己进行重定向。

例如,如果您使用 AngularJS 应用程序连接 Web API,则在成功完成对电子邮件确认的调用后,使用您存储在客户端的网页 URL 重定向到网页/ View 。

[编辑]

根据您的评论

I use angularjs, but the call to email confirmation comes from user's email, not from client.

然后,您必须通过将主机的 url 设置为您的 Angular JS 应用程序主机,在服务器端生成确认电子邮件。例如myangularjsapp.com/emilconfirmation/token。将包含此 URL 的电子邮件发送给您的用户。

使用这样的 URL,用户将从他的电子邮件重定向到您的 AngularJS 应用程序。当他点击应用程序时,您通过从 AngularJS 应用程序 URL 检索 token 来初始化对 ASP.Net Web API 的调用。

关于asp.net-mvc - 在 ASP.NET WEB API Controller 中确认后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33713093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com