본문으로 바로가기
반응형

기존 Repeater에서 파라미터 값으로 넘기던 것을 보안 처리를 해주려고 삽질을 해 보았다.


이전에는

<a href="detail.aspx?ID='<%# Eval("ID") %>'>

이런식으로 사용했는데


주소창에 파라미터 값이 그대로 노출되므로 이 부분을 해결하지 않으면 안되었다.


몇번의 삽질 끝에 LinkButton-CommandArgument와 Session을 사용하여 수정하였다.

솔루션

다음과 같이 링크버튼을 만들었다.

표시할 텍스트는 Text에 넘길 값은 CommandArgument로 설정하면 된다.

<asp:LinkButton id="DetailBtn" runat="server" Text='<%# Eval("Text") %>' CommandArgument='<%#Eval("ID") %>' OnClick="btnDetail_Click" />


다음은 C# 부분이다.

using System.Web.UI.WebControls;

protected void btnDetail_Click(object sender, EventArgs e)
{
    LinkButton lb = sender as LinkButton;
    Session["ID"] = lb.CommandArgument.ToString();
    Response.Redirect("Detail.aspx");
}

OnClick 이벤트를 받은 다음 LinkButton을 찾아 CommandArgument의 값을 가져온다.

다음에는 그 값으로 세팅하고 페이지를 넘긴다.

다음 페이지에서는 Session["ID"]를 찾아서 사용만 하면 된다.

반응형

'개발삽질방 > Web' 카테고리의 다른 글

[PHP] Excel로 출력  (0) 2018.11.26
[PHP] Azure DB 연동  (0) 2018.11.24
[Azure] SQL 스크립트 생성  (0) 2018.11.24
[ASP.NET] iOS Push 발송시 CryptographicException 문제  (0) 2018.11.23