基于本文和与本教程关联的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