- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我有一个启用了身份的 asp.net core 2.1 项目,但是在对种子用户进行某些更改后,我遇到了一些问题。
点击注册为新用户时出现的错误是
InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.UI.Services.IEmailSender' while attempting to activate 'namespace.Website.Main.Areas.Identity.Pages.Account.RegisterModel'.
在 Register.cshtml.cs 类中,我看到注入(inject)了 IEmailSender,但我没有对此进行任何更改,无法理解为什么会发生此错误?请帮忙
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddHttpClient();
services.AddHttpClient<IExceptionServiceClient, ExceptionServiceClient>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
}
public static class RolesConfig
{
public static async Task InitialiseAsync(ApplicationDbContext context, IServiceProvider serviceProvider)
{
var roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
string[] roleNames = { "Admin", "Report", "Search" };
foreach (var roleName in roleNames)
{
var roleExist = await roleManager.RoleExistsAsync(roleName);
if (!roleExist)
await roleManager.CreateAsync(new IdentityRole(roleName));
}
}
}
public class RegisterModel : PageModel
{
private readonly SignInManager<IdentityUser> _signInManager;
private readonly UserManager<IdentityUser> _userManager;
private readonly ILogger<RegisterModel> _logger;
private readonly IEmailSender _emailSender;
public RegisterModel(
UserManager<IdentityUser> userManager,
SignInManager<IdentityUser> signInManager,
ILogger<RegisterModel> logger,
IEmailSender emailSender)
{
_userManager = userManager;
_signInManager = signInManager;
_logger = logger;
_emailSender = emailSender;
}
[BindProperty]
public InputModel Input { get; set; }
public string ReturnUrl { get; set; }
public class InputModel
{
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
public void OnGet(string returnUrl = null)
{
ReturnUrl = returnUrl;
}
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
if (ModelState.IsValid)
{
var user = new IdentityUser { UserName = Input.Email, Email = Input.Email };
var result = await _userManager.CreateAsync(user, Input.Password);
if (result.Succeeded)
{
_logger.LogInformation("User created a new account with password.");
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
var callbackUrl = Url.Page(
"/Account/ConfirmEmail",
pageHandler: null,
values: new { userId = user.Id, code = code },
protocol: Request.Scheme);
await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
$"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
await _signInManager.SignInAsync(user, isPersistent: false);
return LocalRedirect(returnUrl);
}
foreach (var error in result.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
}
}
// If we got this far, something failed, redisplay form
return Page();
}
}
非常感谢任何帮助!谢谢
我正在尝试在我的应用程序中使用 WCF 4.0 服务。我从头开始构建、测试和部署服务。该服务在 WCF 测试客户端中工作,并且可以在我构建的任何其他测试项目中使用。问题是这个特定的应用程序……唯一重要
标题已经说出了我想问的一切。我无法理解使用 window 和 const {} 的主要区别是什么。 我都试过了,结果是一样的。你能帮我理解这一点吗? 附注我正在使用 Laravel,它使用 windo
我想匹配下面的字符串, str1: xxx(yyy) (zzz(qqq)) str2: xxx(yyy) 我写了一个正则表达式,只能匹配str1: >>> s = re.compile(r'([^\(
我该如何拆分 list = ['a', 'xxx yyy zzz'] 进入 list = ['a', 'xxx', 'yyy', 'zzz'] 在 Python 2.7.5+ 中(默认,2013 年
是否有一种内置的简单方法可以将字符串转换为整数,字符串格式为 xxx,yyy,zzz?喜欢 325,121,565 而不是 325121565。我知道我可以构建一个函数来执行此操作,但我想知道是否其他
在调试大型项目时,我使用日志打印输出中的链接直接跳转到相关文件和行。唉,在很多情况下我都会收到以下弹出窗口: XXX is not a valid line number in YYY.java 在主
我在从服务调用方法时遇到问题。该错误仅发生在 .NET 中,Java 似乎工作正常。该服务中的大多数方法都适用于 .NET,到目前为止,其中 2 个方法已引发异常。如果您想尝试重现,该服务已开放:ht
Eclipse 向我报告了一个问题: The project XXX does not have any GWT SDKs on its build path ...我很难弄清楚这个问题是从哪里来的以
编译文件error_xxx_does_not_name_a_type.cpp ,为什么会出现错误 error_xxx_does_not_name_a_type.cpp:5:28: error: ‘A’
我升级到 xcode 4.0,现在在编译时遇到这个错误: “在‘yyy’类型的对象上找不到属性‘xxx’” 其中 xxx 是属性,yyy 是我的代表。 我正在尝试按如下方式在委托(delegate)对
我关注了一篇博文“使用 ASP.NET Core 和 Visual Studio Code 构建您的第一个 Web API”。 http://www.codingflow.net/building-y
有人告诉我这是对我最后一个 question 的回答那个 char *name[] = {"xxx", "yyy"} 被编译器更改为 char *name[] = {Some_Pointer, Som
我有两个 android 项目,ProjA 需要 ProjB(在 Eclipse 属性 > Java 构建路径 > 项目 > 添加 > ProjB)。在 Eclipse 中一切都可以编译,但是当我运行
我安装了bind在 CentOS 6 服务器上配置 DNS 区域以定义域。我的 /etc/named.conf这是: options { # listen-on port 53 { 1
这个问题在这里已经有了答案: Unable to resolve service for type while attempting to activate (10 个答案) 关闭 2 年前。 我有
我得到的原始数据是这样的,都在一列 John;Peter;Eric; Susan;Mary;Kate; 但我想将它们分成三个单独的列 John Peter Eric Susan Mary Ka
Jenkins 在完成测试执行后给出以下内容: Error sending to the following INVALID addresses: valid emailid Jenkins 构建日志
我想编写一个 servlet 或过滤器,自动将 url/xxx/yyy/zzz 映射到类 XxxYyyZzz.java。 例如,以下 URL 将映射到以下 java 类: /comment/add -
我遇到了这个错误: error: failed to parse manifest at `...\Cargo.toml` Caused by: Feature `client` depends
我试图通过获取日期然后填充表来获取存储在数据库中的数据。 List contents = new ArrayList<>(); List records try { S
我是一名优秀的程序员,十分优秀!