【问题标题】:Return "GeneratePasswordResetTokenAsync" only in development mode仅在开发模式下返回“GeneratePasswordResetTokenAsync”
【发布时间】:2020-08-14 13:04:33
【问题描述】:
我有使用 GeneratePasswordResetTokenAsync 创建令牌的 ResetPassword 方法。我使用 Postman 测试我的 API,我希望它在开发模式下返回令牌
但是在生产环境中,我只想发送 200 OK 而不是返回令牌。
在这种情况下如何注入环境依赖?
【问题讨论】:
标签:
c#
asp.net-core
asp.net-web-api
development-environment
production-environment
【解决方案1】:
在Controller /PageModel构造函数中注入IWebHostEnvironment,判断环境模式。你可以参考下面的例子
public class StudentsController : ControllerBase
{
private readonly IWebHostEnvironment _env;
public StudentsController(IWebHostEnvironment env)
{
_env = env;
}
public async Task<IActionResult> Get()
{
if(_env.EnvironmentName.Equals("Development"))
{
// creates a token using GeneratePasswordResetTokenAsync
}
else if(_env.EnvironmentName.Equals("Production "))
{
//send 200 OK
}
}
}