C# 当新用户登录时,如何在模型中重新水化标识属性
比如我有一个模型C# 当新用户登录时,如何在模型中重新水化标识属性,c#,asp.net,asp.net-web-api,asp.net-identity,C#,Asp.net,Asp.net Web Api,Asp.net Identity,比如我有一个模型 public class OccupationType { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [JsonProperty("userId")] [ForeignKey("ApplicationUser")] public string UserId { get; set; } [
public class OccupationType
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[JsonProperty("userId")]
[ForeignKey("ApplicationUser")]
public string UserId { get; set; }
[JsonProperty("type")]
public string Type { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
}
这将为ApplicationUser
对象设置多对1关系,我在其中存放用户身份
我的控制器通常采用如上所述的模型并保存传入数据,例如:
public async Task<IHttpActionResult> Put(string id, OccupationType occupationtype)
{
// DO BUSINESS LOGIC
return StatusCode(HttpStatusCode.NoContent);
}
无ApplicationUser
属性。但是,当安装此对象时,模型中会包含一个ApplicationUser
对象。用户第一次使用控制器时,ApplicationUser
的身份是具有被授权使用控制器操作的令牌的用户的身份
在我用另一个用户发送另一个请求之前,这是可以接受的。然后,即使不同的用户使用了新令牌,ApplicationUser
仍与第一个用户相同
我很困惑。如何选择用户自动填充
ApplicationUser
属性?当一个新的令牌用于发出请求时,为什么它不知道一个新的主体呢?MVC ModelBinder可能会将发布的用户ID
绑定到职业类型.UserId
。然后根据该用户ID获取职业类型.ApplicationUser
。不记名代币与此无关
所以我打赌客户端在第二个请求中发送相同的用户ID
{
UserId = "###-###-..."
Type = "..."
}