User.Identity.GetUserId() return null



基于本文和与本教程关联的github中的源代码,我正在尝试实现用户拥有个人资源的MVC应用程序。

我在控制器上具有授权属性,如果我未登录,我将被重定向到登录页面。我可以在页面顶部看到我的用户名,所以我认为事情很好。但是随后我尝试在另一个控制器上进行创建操作,发现Currentuser为null。

这似乎以随机的方式发生,这使它非常令人沮丧。但是最近只失败。

可以创建数据库吗?我首先使用代码。

 [Authorize]
public class ShopsController : Controller
{
    private ApplicationDbContext db;
    private UserManager<ApplicationUser> manager;
    public ShopsController()
    {
        db = new ApplicationDbContext();
        manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
    }

    // GET: Shops
    public ActionResult Index()
    {
        var currentUser = manager.FindById(User.Identity.GetUserId());
        var shops = db.Shops.ToList().Where(shop => shop.Owner.Id == currentUser.Id);
        return View(shops);
    }

尝试此代码(注意:铸件到字符串):

 User.Identity.GetUserId<string>()

由于我的数据库中的ID列为 ID NVARCHAR(128),而不是null 没有铸件,所以我收到了null,但是在铸造后,它给了我预期的GUID GUID

相关内容

  • 没有找到相关文章

最新更新