使用空模板 在 MVC 中获取当前用户 ID asp.net



伙计们,我在这里有点迷茫,任何人都可以帮助我解决这个问题,我无法显示当前用户根据我的表登录的数据,我的表将始终返回空列表,应该显示用户及其主题。

我在 (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();
    }

相关内容

  • 没有找到相关文章

最新更新