Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# 当新用户登录时,如何在模型中重新水化标识属性_C#_Asp.net_Asp.net Web Api_Asp.net Identity - Fatal编程技术网

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 = "..."
}