我正在关注 IdentityUser 的一些教程,我认为我的做法与教程中的完全一样,但是当我尝试登录时,即使 _signInManager 成功,我也会收到“MyIdentity:False”(带有 LogInformation),这似乎很奇怪。我尝试将用户设置为已确认,但没有结果。
我正在 Mac 上使用 Visual Studio。
以下是我注册用户的方法:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser()
{
UserName = model.Email,
Email = model.Email
};
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await _signInManager.SignInAsync(user, false);
return this.RedirectToAction("Index", "Home");
}
else
{
foreach (var error in result.Errors)
ModelState.AddModelError("", error.Description);
}
}
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试登录的方法:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginViewModel model)
{
if (ModelState.IsValid)
{ …Run Code Online (Sandbox Code Playgroud) 在主要过程中,我听SIGCHLD:
signal(SIGCHLD, &my_handler);
Run Code Online (Sandbox Code Playgroud)
然后我fork(),execv()让它在后台运行(例如/ bin/cat).
当我尝试从终端发送SIGSTOP到子进程时,my_handler()被调用.但是当我尝试向它发送SIGCONT时,处理程序不会在macOS上调用,而是在我的Ubuntu上执行.
人:
SIGCHLD:儿童身份发生了变化.
我错过了什么吗?这是预期的行为吗?我在Ubuntu上编写了我的应用程序,并期望它也可以在mac上运行.
我也尝试过sigaction(),但结果相同.
这是一个示例代码,用于演示:
#include <signal.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
void my_handler(int signum)
{
printf("\t SIGCHLD received\n");
fflush(stdout);
}
void my_kill(pid_t pid, int signum)
{
printf("Sending %d\n", signum);
fflush(stdout);
kill(pid, signum);
printf("Sent %d\n\n", signum);
fflush(stdout);
}
int main()
{
pid_t pid;
char *cat_args[2] = {"/bin/cat", NULL};
signal(SIGCHLD, &my_handler);
pid = fork();
if (pid == 0)
{
execv("/bin/cat", cat_args);
} …Run Code Online (Sandbox Code Playgroud)