2012-01-31 127 views
2

我遇到問題我找不到教程或某些代碼,我可以執行一些會話狀態。例如,我想創建一個應用程序,當用戶登錄時,他或她只能查看信息,例如查看他的成績的學生,沒有其他學生可以看到該信息。我去年在VB 2008中實現了這一點,但需要MVC3的幫助,因爲它與我使用C#的語言不同。在VB 2008中,我實現了從ASP.net數據庫(用戶)連接一個表並通過外鍵連接到我的員工表。並添加以下代碼:會話狀態MVC3

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

我不清楚究竟是什麼你想達到什麼目的。

如果您想要限制用戶只能訪問屬於他們的數據,您需要將這些數據與用戶表中的ID相關聯。關於表結構的知識很少,但我認爲假設您有課程表和類似UsersInCourses的東西是安全的,它可以將許多用戶映射到單個課程。你所要做的就是選擇分配給用戶的課程。要獲得當前登錄用戶,您只需在您的應用代碼中參考

User.Identity.Name 

因此,讓我們假設你的類烹飪reciepe:

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); 
    } 
+0

謝謝你的回覆你的假設我表格是正確的,但是這個代碼只能用戶訪問他的信息。 – user1137472 2012-02-02 21:43:47

+0

我不知道我是否按照你的邏輯,但看看我的更新迴應。如果您發現在ASP.NET MVC上下文中很難習慣C#,那麼我建議花一些時間閱讀http://mvcmusicstore.codeplex.com/上以PDF格式提供的優秀教程,這應該可以解答大部分的問題。問題,因爲它描述的mechanims,並提供良好的,清晰的代碼 – torm 2012-02-02 23:18:44

+0

在應用程序中有一個ASP.net生成的數據庫,所有的用戶都存儲我必須連接我的表中的用戶ID pk例如你的烹飪食譜,如果有一個表用戶你已經創建(作者),我需要將來自asp.net表用戶的ID鏈接到我的。謝謝 – user1137472 2012-02-02 23:44:31