본문으로 바로가기
반응형

기존 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"]를 찾아서 사용만 하면 된다.

반응형

댓글을 달아 주세요