gpt4 book ai didi

c# - session 状态 MVC3

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:54 26 4
gpt4 key购买 nike

我遇到了一个问题,我找不到可以执行某些 session 状态的教程或代码。例如,我想创建一个应用程序,当用户登录时,他或她只能查看那里的信息,例如,一个学生查看他的成绩,其他学生不能看到该信息。我去年在 VB 2008 中实现了这一点,但在 MVC3 中需要帮助,因为它与我使用 C# 的语言不同。在 vb 2008 中,我实现了从 ASP.net 数据库(用户)连接一个表并通过外键连接到我的员工表。并添加了以下代码:

  Session("ID") = objUser
Dim db As New DataClassesDataContext
Dim info = From a In db.tblCourses _
Where a.CourseTitle = ddlCourseName.SelectedItem.Value _
Select a.CourseId Order By CourseId Descending
crseID = info.FirstOrDefault()

Session("Course") = crseID
sdsAddStudent.Insert()

FName.Text = ""
LName.Text = ""
Address.Text = ""
ddlCourseName.SelectedIndex = 0
Session("UserID2") = objUser
Session("RoleID2") = "f13b9bf3-593d-4170-bfaa-bc43655773e2"
sdsRoleStudent.Insert()

我知道 VB 与 C# MVC3 不同,因为这是 2008 年,而不是 MVC3,我只是展示这段代码,所以人们知道我不追求免费代码,并尝试做出努力,但没有成功。

谢谢你的好心帮助人们

最佳答案

我不清楚你到底想达到什么目的。

如果你想限制用户只访问属于他们的数据,你需要让这些数据与用户表中的 ID 相关联。您对表结构的了解很少,但我认为可以安全地假设您有 Courses 表和类似 UsersInCourses 的东西,可以将许多用户映射到一个类(class)。您所要做的就是选择分配有用户 ID 的类(class)。要获取当前登录的用户,您只需引用

User.Identity.Name

在您的应用程序代码中。

那么让我们假设您的类(class)正在 cooking 食谱:

public class Recipe
{
public int Id { get; set; }
public string Name { get; set; }
public string Author { get; set; }
public string PreparationInstructions { get; set; }
public DateTime CreationDate { get; set; }
}

并且您希望有一个 Action 为当前登录的用户返回食谱

    public ActionResult ShowMyRecipes()
{
var myRecipes = dbContext.Recipes.Where(recipe => recipe.Author.Equals(User.Identity.Name)).ToList();
return View(myRecipes);
}


public ActionResult CreateRecipe(Recipe recipe)
{
// set Author to curently logged in user's key
recipe.Author = Membership.GetUser().ProviderUserKey;
// save changes
dbContext.Recipes.Add(recipe);
}

关于c# - session 状态 MVC3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9086424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com