ユーザーがユーザー 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);
}