Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 错误的ID用户-ASP网络核心_Entity Framework_Asp.net Core_Asp.net Identity - Fatal编程技术网

Entity framework 错误的ID用户-ASP网络核心

Entity framework 错误的ID用户-ASP网络核心,entity-framework,asp.net-core,asp.net-identity,Entity Framework,Asp.net Core,Asp.net Identity,我正在使用ASP.NET CORE 2.0,必须捕获登录的用户ID。这是我的帐户控制器: [Route("[controller]/[action]")] public class AccountController : Controller { private readonly SignInManager<ApplicationUser> _signInManager; private readonly ILogger _logger; private re

我正在使用ASP.NET CORE 2.0,必须捕获登录的用户ID。这是我的帐户控制器:

[Route("[controller]/[action]")]
public class AccountController : Controller
{
    private readonly SignInManager<ApplicationUser> _signInManager;
    private readonly ILogger _logger;
    private readonly UserManager<ApplicationUser> _userManager;

    public AccountController(SignInManager<ApplicationUser> signInManager, ILogger<AccountController> logger, UserManager<ApplicationUser> userManager)
    {
        _signInManager = signInManager;
        _logger = logger;
        _userManager = userManager;
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Logout()
    {
        await _signInManager.SignOutAsync();
        _logger.LogInformation("User logged out.");
        return RedirectToPage("./Index");
    }
}
但他给了我一个完全不同的身份证,为什么会这样?我使用身份。然后,当我使用.Id时,每小时我都会立即使用它,即使它使用的是同一个用户,它也会带来一个不同的Id,而不会带来在AspnetUsers表中注册的Id

需要获取用户id的页面代码:

protected UserManager<ApplicationUser> UserManager { get; set; }
    public RecebimentoModel(CronoParque.Model.ApplicationDbContext context)
    {
        _context = context;
    }
    [BindProperty]
    public string Message { get; set; }
    [BindProperty]
    public ContasReceberViewModel ContasReceberVM { get; set; }



    public async Task<IActionResult> OnPost()
    {
        if (ModelState.IsValid)
        {
            var CR = _context.ContasReceber.Find(ContasReceberVM.ContasReceber.Id);
            CR.Quitado = true;
            CR.ValorPago = Convert.ToDecimal(ContasReceberVM.ContasReceber.ValorPago.ToString().Replace(",","."));
            CR.FormaPagamento = ContasReceberVM.ContasReceber.FormaPagamento;
            CR.DataPagamento = DateTime.Now;
            CR.FuncionarioId = UserManager.GetUserId(HttpContext.User);
            await _context.SaveChangesAsync();
            Message = "Pagamento Realizado com Sucesso!";

            return RedirectToPage("Index");
        }
        return RedirectToPage();
    }
protectedusermanager用户管理器{get;set;}
公共ReceibimentoModel(CronoParque.Model.ApplicationDbContext上下文)
{
_上下文=上下文;
}
[BindProperty]
公共字符串消息{get;set;}
[BindProperty]
public contasReceiberViewModel contasReceiberVM{get;set;}
公共异步任务OnPost()
{
if(ModelState.IsValid)
{
var CR=_context.ContasReceber.Find(ContasReceberVM.ContasReceber.Id);
CR.Quitado=真;
CR.ValorPago=Convert.ToDecimal(ContasReceberVM.ContasReceber.ValorPago.ToString().Replace(“,”,”);
CR.FormaPagamento=ContasReceberVM.ContasReceber.FormaPagamento;
CR.DataPagamento=DateTime.Now;
CR.FuncionarioId=UserManager.GetUserId(HttpContext.User);
wait_context.SaveChangesAsync();
Message=“Pagamento Realizado com successo!”;
返回至Topage(“索引”);
}
返回重定向Topage();
}
在您的函数中尝试此操作,它应该可以工作:)


在您的函数中尝试此操作,它应该可以工作:)

您正在创建一个与当前用户无关的新空应用程序用户。我该如何做?您正在创建一个与当前用户无关的新空应用程序用户。我该如何做?
protected UserManager<ApplicationUser> UserManager { get; set; }
    public RecebimentoModel(CronoParque.Model.ApplicationDbContext context)
    {
        _context = context;
    }
    [BindProperty]
    public string Message { get; set; }
    [BindProperty]
    public ContasReceberViewModel ContasReceberVM { get; set; }



    public async Task<IActionResult> OnPost()
    {
        if (ModelState.IsValid)
        {
            var CR = _context.ContasReceber.Find(ContasReceberVM.ContasReceber.Id);
            CR.Quitado = true;
            CR.ValorPago = Convert.ToDecimal(ContasReceberVM.ContasReceber.ValorPago.ToString().Replace(",","."));
            CR.FormaPagamento = ContasReceberVM.ContasReceber.FormaPagamento;
            CR.DataPagamento = DateTime.Now;
            CR.FuncionarioId = UserManager.GetUserId(HttpContext.User);
            await _context.SaveChangesAsync();
            Message = "Pagamento Realizado com Sucesso!";

            return RedirectToPage("Index");
        }
        return RedirectToPage();
    }
var user = _userManager.GetUserAsync(User);
var id = user.Result.Id;