3

ユーザーがユーザー ID を使用してフォームを送信できるようにすることは、セキュリティ上の適切な慣行ではないと聞きました。これにより、ユーザー ID を URL に表示できるようにすることは適切な方法ではないと思います。しかし、ユーザーが他のユーザーのプロファイルを表示できるようにする方法が必要です。

使用する代わりに、私は疑問に思っていました

@Html.ActionLink("Details", "Details", new { id = item.Id }) 

私が使うべきなら

@Html.ActionLink("Details", "Details", new { id = item.username }) 

次に、コントローラーでユーザー名でユーザーを検索し、ユーザーを返します。

これは正しい方法ですか?

これが私のリンクになりました

@Html.ActionLink(person.FullName, "Details","User" , new { UserName = person.UserName }, null)

これが私のコントローラーアクションになりました

    // GET: /User/Details?UserName=bbob
    public ActionResult Details(string UserName)
    {
        if (UserName == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        ApplicationUser aspnetuser = UserManager.FindByName(UserName);

        if (aspnetuser == null)
        {
            return HttpNotFound();
        }
        return View(aspnetuser);
    }
4

1 に答える 1

5

ユーザー名が既にわかっている場合に Id を検索する必要がなくなるため、私は Username アプローチを好みます。また、可能な ID のリストを反復処理することにより、ユーザーがユーザー情報を「参照」することをより困難にします。

また、この質問にはおそらくフラグが立てられるでしょう。:)

于 2013-11-04T17:25:44.417 に答える