Состояние сеанса MVC3 - PullRequest
       7

Состояние сеанса MVC3

2 голосов
/ 01 февраля 2012

У меня возникла проблема. Я не могу найти учебник или какой-то код, в котором я могу выполнить какое-то состояние сеанса.Например, я хотел бы создать приложение, в котором, когда пользователь входит в систему, он или она может только просматривать там информацию, например, ученик, просматривающий его оценки, и никакой другой ученик не может видеть эту информацию.Я добился этого в 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, просто показываю этот код, чтобы люди знали, что я не за свободный код и пытались сделатьусилия, которые не увенчались успехом.

Спасибо за доброту, помогите людям

1 Ответ

1 голос
/ 01 февраля 2012

Мне не ясно, чего именно ты пытаешься достичь.

Если вы хотите ограничить доступ пользователей исключительно к данным, которые им принадлежат, эти данные должны быть связаны с их идентификаторами в таблице «Пользователи».Вы очень мало рассказали о структуре таблицы, но я думаю, что можно с уверенностью предположить, что у вас есть таблица Courses и что-то вроде UsersInCourses, которые отображают множество пользователей на один курс.Все, что вам нужно сделать, это выбрать курсы, которым назначен идентификатор пользователя.Чтобы войти в систему в данный момент, вы просто должны обратиться к

User.Identity.Name

в коде вашего приложения.

Итак, давайте предположим, что ваш класс готовит рецепт:

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; }
}

иВы хотите иметь Действие, которое возвращает рецепты для текущего зарегистрированного пользователя

    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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...