2011-11-18 26 views
2

ビューでは簡単に見つけ出すことはできますが、インデックスコントローラでユーザー名を取得する方法はありますか?ユーザーがログインしている場合、Asp.Net MVCコントローラのアクションをチェックする方法

私は私のindexアクションを持っていると私にlogedユーザーはログインがそうのように私のindexアクションへのSパラメータを渡すことにしたいかどうかに基づいて:

public ActionResult Index(userName) 
    { 

     var topTenList = repository.FindAllTopTen(userName).ToList(); 
     var currentList = repository.FindAllCurrentFav(userName).ToList(); 
     var genreListTemp = repository.FindAllGenres(userName).ToList(); 
     var userListTemp = repository.FindAllUsers().ToList(); 


     return View(new HomeViewModel() 
     { 
      topTenFavList = topTenList, 
      currentFavList = currentList, 
      genreList = genreListTemp, 
      userList = userListTemp 

     }); 
    } 
+1

どのようなメンバーシップを提供していますか? aspnet membershipProviderを使用している場合は、メソッドを[Authorize]する必要があります。ユーザー名を取得するには、単にUser.Identity.Nameを使用してください。 – shennyL

+0

はいデフォルトのasp.netメンバーシップを使用していますが、ユーザー名をパラメータとして渡す必要があります。インデックスアクションには、私はそれを私のビューに渡すために適切なモデルを照会することができます –

答えて

2

あなたが実際にあればそれを渡す必要はありませんそれらが認証されている:

public ActionResult Index() 

{

string userName = User.Identity.Name; 

var topTenList = repository.FindAllTopTen(userName).ToList(); 
var currentList = repository.FindAllCurrentFav(userName).ToList(); 
var genreListTemp = repository.FindAllGenres(userName).ToList(); 
var userListTemp = repository.FindAllUsers().ToList(); 


return View(new HomeViewModel() 
{ 
    topTenFavList = topTenList, 
    currentFavList = currentList, 
    genreList = genreListTemp, 
    userList = userListTemp 

}); 

}

+0

ありがとう、intellisenseは私にコントローラでそのようなコードを使用することができたヒントを示していませんでしたが、これは私が必要なものです –

関連する問題