在不使用asp.net标识的情况下获取已记录的userID

时间:2017-07-31 09:44:24

标签: c# sql-server asp.net-mvc entity-framework

我们正在开发一个mvc项目,我们已经登录了注册页面。但是我们没有使用asp.net身份框架。我们正在从sql server studio中的数据库中检查用户数据,并在有人注册时粘贴用户数据。

在我们的项目中,它是一种善意的指导者比赛和导师向他/她的受指导者提供项目。当我们创建一个项目时,我们使用数据库中的两个表,一个是Mentee表,另一个是Mentor表。

在mentee表中创建新行很容易,但是当记录的用户创建新任务时,我们需要他/她的id在指导者表中创建一行。因为如果您已登录并创建任务,那么您就是导师,我们需要从Users表中获取已记录的用户ID。

我希望自己非常清楚,我们需要你的帮助。如果您需要我们项目中的任何代码,我可以编辑帖子。

[HttpPost]
public ActionResult NewLesson(DersAtamaModel model)
{
    using (DENEME_V2Entities db = new DENEME_V2Entities())
    {  
        LESSON lesson = new LESSON();
        lesson.LName = model.Project_Name;
        lesson.Intro = model.Intro;
        db.LESSONS.Add(lesson);
        db.SaveChanges();
        int Lesson_id = db.LESSONS.Where(x => x.LessonID == lesson.LessonID).FirstOrDefault().LessonID;
        TaskCreateModel tcmodel = new TaskCreateModel();
        tcmodel.Lesson_ID = Lesson_id;
        MENTEE mentee = new MENTEE();
        mentee.LessonID = Lesson_id;
        mentee.UserID = model.secilenKullanıcıId;
        mentee.Intro = "Intro";
        mentee.Statu = 0;
        db.MENTEEs.Add(mentee);
        db.SaveChanges();
        //MENTOR mentor = new MENTOR();
        string userId = User.Identity.GetUserId();
            return RedirectToAction("CreateTasks", "Lesson",tcmodel);
    }

}

1 个答案:

答案 0 :(得分:0)

使用以下代码在使用登录时在Session中存储登录ID,然后在需要时检索详细信息:

[HttpPost]
public ActionResult Login(UserInfo user)
{
    Session["UserId"] = user.Id;
}

[HttpPost]
public ActionResult NewLesson(DersAtamaModel model)
{
   int userId = Convert.ToInt32(Session["UserId"]);
}

我只提供了设置和获取会话的代码。您应该在用户使用Session.Abondon()Session["UserId"] = null

注销时清除会话