无法将asp.net标识中的UserID分配给int值类型

本文关键字:分配 UserID int 类型 asp net 标识 | 更新日期: 2023-09-27 18:17:32

这是我的控制器动作方法-------

    public HttpResponseMessage PostPost(Post post)
    { 
     // previosly i was using simple membership to get id of logged in user
       // post.PostedBy = WebSecurity.CurrentUserId;
          post.PostedBy = User.Identity.GetUserId<int>();
           post.PostedDate = DateTime.UtcNow;
        ModelState.Remove("post.PostedBy");
        ModelState.Remove("post.PostedDate");
        if (ModelState.IsValid)
        {
            db.Posts.Add(post);
            db.SaveChanges();
   // now i am facing problem at this line. it is saying that
  //Operator '=='   cannot be applied to operands of type 'int' and 'string'  
            var usr = db.Users.FirstOrDefault(x => x.Id == post.PostedBy);

当我使用简单成员关系时,我的代码工作得很好。我该怎么做才能让它起作用呢?这里,post是一个类,属性PostedBy为int,我想分配当前loggedIn userId值给这个属性。

无法将asp.net标识中的UserID分配给int值类型

查看此链接中的答案:如何获得当前用户,以及如何在MVC5中使用user类?

检查答案中的代码是如何编写的:

using Microsoft.AspNet.Identity;
...
User.Identity.GetUserId();

如果这不起作用,请调试和跟踪代码,并告诉我们User的值是什么。身份?