伙计们,我在这里有点迷茫,任何人都可以帮助我解决这个问题,我无法显示当前用户根据我的表登录的数据,我的表将始终返回空列表,应该显示用户及其主题。
我在 (MVC) 中使用空模板,我只有自己的自定义身份验证 + 角色。我为用户 ID 使用了 Int 数据类型。 如果您能指导我如何处理这个问题,我们将不胜感激。感谢并提前
Nu-get包:Install-Package Microsoft.AspNet.Identity.EntityFramework
命名空间:使用 Microsoft.AspNet.Identity;
控制器:
[Authorize(Roles = "Admin,Teacher")]
public ActionResult Index()
{
int userId = User.Identity.GetUserId<int>();
var subjectTeachers = db.SubjectTeachers.Where(x=>x.UserID==userId);
return View(subjectTeachers.ToList());
}
型:
[Key]
public int SubTech { get; set; }
[Display(Name ="SUBJECT")]
public int SubjectID { get; set; }
public virtual Subject Subjects { get; set; }
[Display(Name = "TEACHER")]
public int UserID { get; set; }
public ICollection< User> Users { get; set; }
[Display(Name = "LEVEL")]
public int LevelID { get; set; }
public ICollection< Level> Levels { get; set; }
目标:我的表应该显示属于当前登录用户的主题+级别列表。 但不幸的是,现在它显示的是空列表,
伙计们在做了一些研究后,我找到了根据用户当前登录显示数据的方法 我只想分享给不知道的人,
我使用了空的 mvc 模板,然后我按照本教程链接进行操作作者 DotNet 真棒感谢他.http://www.dotnetawesome.com/2015/06/how-to-implement-custom-forms-authentication-in-aspnet-mvc.html.
我遵循了他的所有 4 教程,然后将其添加到我的控制器中。不要忘记使用以下命名空间。
using Microsoft.AspNet.Identity;
public ActionResult Index()
{
if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated == true)
{
var identity = (System.Web.HttpContext.Current.User as MyProject.MyPrincipal).Identity as MyProject.MyIdentity;
var demo = db.SubjectTeachers.Where(x => x.UserID == identity.User.UserID).ToList();
return View(demo);
};
return View();
}