Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
C# 在Login.cshtml.cs中设置用户详细信息 为清晰起见进行编辑:_C#_Asp.net Core_Asp.net Identity - Fatal编程技术网

C# 在Login.cshtml.cs中设置用户详细信息 为清晰起见进行编辑:

C# 在Login.cshtml.cs中设置用户详细信息 为清晰起见进行编辑:,c#,asp.net-core,asp.net-identity,C#,Asp.net Core,Asp.net Identity,Login.cshtml.cs中的user.LastActiveDate已成功从用户()获取数据,但我无法将LastActiveDate的数据实际更改为当前日期 原始问题: 我已经设置了AspNetCore.Identity.UI,并通过它设置了登录和注册。用户登录后,我将尝试设置一个详细的LastActiveDate,其中将包含DateTime.UtcNow,用户登录后应立即进行设置 我尝试的是在if(result.succeed)中设置此选项,但是这似乎不起作用。你知道我可能做错了什么/我应

Login.cshtml.cs中的
user.LastActiveDate
已成功从用户()获取数据,但我无法将
LastActiveDate
的数据实际更改为当前日期

原始问题:

我已经设置了AspNetCore.Identity.UI,并通过它设置了登录和注册。用户登录后,我将尝试设置一个详细的LastActiveDate,其中将包含
DateTime.UtcNow
,用户登录后应立即进行设置

我尝试的是在
if(result.succeed)
中设置此选项,但是这似乎不起作用。你知道我可能做错了什么/我应该怎么做吗

Login.cshtml.cs

以防万一,这就是我在中注册时设置新用户的方式 Register.cshtml.cs,但我高度怀疑这有什么问题,因为它似乎显示的是set
DateTime.UtcNow
很好

public async Task<IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new User {
                    ...
                    LastActiveDate = DateTime.UtcNow,
                };
...
PostAsync上的公共异步任务(字符串returnUrl=null) { returnUrl???=Url.Content(“~/”); ExternalLogins=(wait _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if(ModelState.IsValid) { var user=新用户{ ... LastActiveDate=DateTime.UtcNow, }; ...

我确信有一种快速的方法可以做到这一点,但我对C#还是很陌生,无法在网上找到它或相关的查询。任何帮助都将不胜感激。

否。您必须通过将其写入
AspNetUsers
表来设置用户详细信息。您可能需要扩展用户实体(这是一种流行的做法),请参阅

对于特定情况(在注释中),记录上次登录时间,您需要按扩展实体扩展
AspNetUsers

公共类应用程序用户:IdentityUser
{
公共虚拟日期时间?LastLoginTime{get;set;}
公共虚拟日期时间?注册日期{get;set;}
//其他属性
}

请参见

Hi上的更多内容,它已经是
AspNetUsers
中的一列(很抱歉没有说清楚)-,与之相关的所有内容都在
AppDBContext
中设置。我很难访问当前用户的该列以将
LastActiveDate
设置为当前日期,最好在用户登录后立即设置。我编辑了该问题以更好地反映我的问题,希望这有助于更好地理解。我更新了我没有回答。
namespace Nemesys.Models
{
    public class User : IdentityUser
    {
       public DateTime LastActiveDate { get; set; }
       ...
    }
}
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new User {
                    ...
                    LastActiveDate = DateTime.UtcNow,
                };
...