2016-10-14 3 views
1

사용자가 양식 저장을 마치면 액세스하려는 페이지가 있습니다. 나는 Response.Redirect("MyPage.aspx?queryStringParam=123") (값 선택, 필드 선택 기준). 나는 값이 전달되고 있는지 확인하기 위해 수표를 가지고있는 페이지 사용자가 쿼리 문자열이있는 페이지에 액세스하지 못하도록하는 방법

과 모든 것이 작동 : 사용자 tryes 페이지를 입력

if (Request.QueryString["queryStringParam"] != null) 
{ 
    int queryStringParam; 
    if(int.TryParse(Request.QueryString["queryStringParam"], out id)) 
    { 
     hfQueryStringParam.Value = queryStringParam.ToString(); 
    } 
    else 
    { 
     Response.Redirect(ResolveUrl("~/Default.aspx")); 
    } 
} 
else 
{ 
    Response.Redirect(ResolveUrl("~/Default.aspx")); 
} 

경우, 그것은 쿼리 문자열을 검사하고 있는지없는 패스하면, 그는 디폴트 페이지로 리다이렉트 할 것이지만, 문제는 그가 queryStringParam을 url에 입력하면 페이지가로드된다는 것입니다. 나는 그런 일이 일어나기를 원하지 않는다.

URL을 입력하여 사용자가 페이지에 액세스하는 것을 차단하고 Response.Redirect으로 만 액세스 할 수있는 방법이 있습니까?

+2

아니요, 불가능합니다. 이것은 XY 문제입니다. 이 매개 변수를 사용하는 방법과 생성 방법을 설명하십시오. – CodeCaster

+0

해당 매개 변수는 저장 후 데이터베이스에서 반환 된 ID입니다. 그런 다음 첨부 파일을 추가 할 수 있도록 다른 페이지로 리디렉션합니다. 그러나 나는 그것이 만들어 질 때만 접근되기를 원한다. 다시 접근 할 수는 없습니다. –

+0

또한 "XY 문제"란 무엇입니까? –

답변

2

양식을 저장하는 페이지에서 MyPage.aspx 로의 리디렉션 직전에 세션에 항목을 저장하십시오. MyPage.aspx에서 먼저 세션 값을 확인하십시오. 이전 페이지에서 설정 한 값이 없으면 사용자를 기본 페이지로 리디렉션하십시오.

+0

그 트릭을 않습니다. 감사. 아직 답변을 수락 할 수 없습니다. 5 분 후 Will –

+0

url을 입력하는 페이지에 액세스하지 못하게하는 방법이 있다면 좋을 것입니다. 요청이 서버 자체에서 오는 경우에만 받아들입니다. –

+1

@FelipeDeguchi 그러나 요청은 서버에서 가져 오지 않습니다 *. 서버는 사용자 브라우저에 "go to X"라는 응답을 보내고 사용자의 브라우저는 서버에 "X"를 요청합니다. – mason

관련 문제