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,但我高度怀疑这有什么问题,因为它似乎显示的是setDateTime.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,
};
...