2012-10-06 2 views
-1

사용자가 암호를 다시 입력하여 열어야 페이지를 열어 다시 탐색하고 다시 돌아올 때 암호를 다시 입력해야합니다. 아니 세션 또는 쿠키, 당신이 그것을 볼 암호를 입력하는 간단한 페이지.암호로 ASPX 페이지 보호

어떻게하면됩니까?

+0

코드에서 문제는 어디에 있습니까? –

+0

나는 ASP에 익숙하지 않고 그런 것을 만드는 법을 모른다. – Fady

+1

@Fady 당신은 asp classic을 계속 요구하고있다. 당신의 파일 확장자는 무엇인가? .asp 또는 이전 질문에 대한 .aspx는 ASP.NET – balexandre

답변

2

두 개의 div를 사용하십시오.

주요 내용을 포함하고 다른 하나는 텍스트 상자와 버튼을 포함하는 것.

<div id="MainDiv" runat="server" Visible="false">Main Content goes here. </div> 

그리고 로그인 버튼을 클릭 핸들러에 로그인 DIV

<div id="LoginDiv" runat="server" Visible="true"> 
     <asp:TextBox ID="PasswordTextBox" runat="server"></asp:TextBox> 
     <asp:Button ID="LoginButton" runat="server" Text="Button" OnClick="LoginButton_Click" /></div> 

, 암호를 확인하고 가시성을 전환합니다.

protected void LoginButton_Click(object sender, EventArgs e) 
     { 
      if(PasswordTextBox.Text=="Password") 
      { 
       MainDiv.Visible=true; 
       LoginDiv.Visible=false; 
      } 
     } 
+0

비록 작동하지만, 유지하는 것은 끔찍한 방법입니다. – balexandre

+0

BTW'Equals'는 2 개의 문자열을 비교할 때'=='를 사용하면 조금 느립니다 ... LINQ를 다룰 때 배웁니다./ – balexandre

+0

Ok. LINQ에서 ==를 사용하여 문제가 발생하면 사용을 중지하십시오. 그것이 실패한 시나리오를 기억하지 마십시오. 그것은 쉬운 해결책이 될 의도 였고, 아마도 OP가 일을하는 법을 배우고 있고, 생산에 가지 않을 것입니다 : ...) ... –

3

암호를 입력 2 페이지, 하나를 사용해야하고 다른 페이지를 보여주기 위해 ... page2.aspx

을 가리키는하는 formPOST

암호 페이지,해야합니다 protected.aspx의 예 :

<form action="page2.aspx" mehod="post"> 
    Pasword: <input type="password" id="pwd" name="pwd" /> 
    <input type="submit" value="Enter" /> 
</form> 

page2.aspxPage_Load 이벤트 같은 것을해야한다

if(Request["pwd"] == null || Request["pwd"] != "123") { 
    Response.Redirect("InvalidPassword.aspx"); 
} 
+0

그래서 Request [ "pwd"]가 설정되지 않았을 때 그들을 리디렉션해야합니다 .. 어떻게? – Fady

+2

'Page_Load'는 페이지를 렌더링하기 전에 실행되는 이벤트입니다. 여기서는 브라우저에 아무것도 보내지 않았으므로 모든 것을 설정할 수 있습니다. 조건 :'if (Request [ "pwd"] == null || 요청 [ "pwd"]! = "123")'는'pwd' 필드가 보내 졌음을 보장 할 것이며, 당신이 기대하는 암호입니다. 케이스'123'. 그렇지 않으면 InvalidPassword.aspx라는 페이지로 리디렉션됩니다. 그렇지 않으면 페이지가 계속로드됩니다. – balexandre

관련 문제