0

主キーの int ID myidfor each ループを使用する.tolistメソッドに渡す方法を知りたいと思っていました

見る

@foreach (var item in Model)

{

@Html.ActionLink("View", "detail", new { id = item.myid})

@Html.ActionLink("Add Pictures", "pictures")

}

.tolist コントローラー

[Authorize]

public ActionResult mylist(list listings)
    {

var showlist = (from s in db.list where getid == s.RegistrationID select s).ToList();

        return View(showlist.ToList());

}

上記からわかるように、 mylistに[authorize]表記があります。これは、foreach ステートメントがオンになっているため、人々は既にログオンしています。私の質問は、int myid@Html.ActionLink("Add Pictures", "pictures")に入れることはできますか?? ユーザーは簡単に別の番号を入れて、他の人の写真を見ることができるので、私はそれをブラウザに入れたくありません。

4

3 に答える 3

0

ユーザー ID が写真の所有者の ID と一致するかどうかをチェックして、他の人の写真を見るのを防ぐことはできませんか?

ID をユーザーに渡す必要があります。これを避けることはできません。

于 2012-11-14T01:20:44.780 に答える
0

それは、この種の「ハッキング」を止める場所ではありません。コントローラーまたは他の場所で、現在認証されているユーザーがその写真を所有しているかどうかを確認し、「写真が見つかりません」というページにリダイレクトするか、または同様のページにリダイレクトします。

于 2012-11-14T01:26:16.770 に答える
0

URLにIDを渡す必要があります

@Html.ActionLink("Add Pictures", "pictures",new { @id=item.ID})

また、写真アクションメソッドでは、現在のユーザーがログインしている ( Authentication ) ユーザーであり、写真を追加する適切な権限 ( Authorization ) を持っているかどうかを確認する必要があります。

public ActionResult pictures(int id)
{
  //TO DO  : Check the user has sufficient permission to add pictures. 
  // The implementation of this checking is completely up to you.
  // If not authorized redirect to a view to show the "Not authorized" message

}
于 2012-11-14T01:28:40.603 に答える