2010-08-19 11 views
4

지금 나는 asp : 3 단계 마법사를 가지고 있습니다. 마침 버튼이 나는 사용자를 작성하고 양식을 전송하고자하는 세 번째 단계를 클릭하면비밀 번호 유지 가치 값 포스트 백

  1. 사용자에게 필드

  • 요약을 이메일하기
  • 양식을 만듭니다. 내가 쓴이의 논리를 가지고 있지만 다음 버튼을 마법사에 눌렀을 때 내가 가지고있는 유일한 문제가있다 포스트 백 발생 및 비밀번호 필드 :
    <asp:TextBox ID="txtPassword" TextMode="Password" Width="70%" runat="server" /> 
    

    그 값을 유지하지 않습니다.

    이 문제를 극복하기위한 가장 안전하고 실용적인 방법은 무엇이라고 생각하십니까?

  • 답변

    2

    아마 마법사에 의해 생성 될 데이터 표현 클래스를 개발하는 것 :

    public class WizardForm 
    { 
        public User NewUser {get;set;} 
        public Form FormToEmail {get;set;} 
    } 
    

    그런 다음 마법사를 통해 각 단계에 나는이 클래스를 업데이트 할 것 세션에 저장 :

    WizardForm form = Session["WizardForm"] as WizardForm; 
    if (form == null) 
    { 
        form = new WizardForm(); 
        Session["WizardForm"] = form; 
    } 
    
    form.User.Password = txtPassword.Text; // etc 
    

    또는 당신은 세션에 암호를 저장하고 나중에 검색 할 수 있습니다 :

    Session["WizardPassword"] = txtPassword.Text; 
    string password = Session["WizardPassword"].ToString(); 
    
    +0

    기본적으로 마법사의 각 단계를 완료 할 때 개체를 만들고 개체를 가져 와서 마침 단추를 클릭 할 때 원하는 작업을 수행합니까? – GaryDevenay

    +0

    @GaryDevenay - 정확 하 게. 또는 세션에 암호를 저장하는 경우에만 세션 ... – GenericTypeTea

    +0

    에 암호를 저장하십시오. 이 방법이 안전한가요? 또는 암호를 암호화해야합니까? – GaryDevenay

    1

    암호 모드에서이 신호음은 asp.net TextBox 컨트롤에 내장되어 있습니다. 다른 동작을 원할 경우 자체 암호 서버 컨트롤을 만들거나 runat = "server"와 함께 일반 HTML 입력 컨트롤을 사용할 수 있습니다. 사용자가 다음 마법사 단계로 진행하고 텍스트 상자 대신 자리 표시자를 표시하면 암호를 저장할 수도 있습니다. 암호를 변경하거나 편집하려면 사용자가 관련 마법사 단계로 돌아 가야합니다.

    2

    클래스를 만들 필요가 없다고 생각합니다. 당신의 page_load 방법에 다음 코드 줄을 사용하십시오

    YourTextBoxName.Attributes["value"] = YourTextBoxName.Text ; 
    

    이것은 아마도이 문제를 해결해야한다.

    +0

    .Text 값을 "YourTextBoxName.Attributes ["value "] = txtPassword.Text;" 암호는 페이지 소스에서 볼 수 있습니다. – wotney

    +0

    @ wotney 비밀번호는 여전히 쉽게 찾을 수 있습니다. 소스의 "텍스트"에 대해 type = "password"만 변경할 수 있습니다. 나는 OP 솔루션이 클라이언트 측에 있기 때문에 쉬운 소스 페이지 암호 찾기가 항상 필요하다고 생각합니다. – Fortin