0
자신이 바보라고 느끼고 있습니다. 간단해야하지만 작동하지 않는 것 같습니다. 다음은 제 제어 코드입니다.TextBox에서 WebControls - Postaback에 새 속성을 저장하지 않음
Imports System.Web.UI.WebControls
Public Class PasswordTextBox
Inherits TextBox
Public Sub New()
TextMode = TextBoxMode.Password
End Sub
Public Property Password As String
Get
Dim s As String = CType(ViewState("Password"), String)
If s Is Nothing Then Return ""
Return s
End Get
Set(value As String)
ViewState("Password") = value
End Set
End Property
Private Const DEFAULT_PASSWORD As String = "********************"
Public Overrides Property Text() As String
Get
If Password = "" Then Return ""
Return DEFAULT_PASSWORD
End Get
Set
MyBase.Text = DEFAULT_PASSWORD
Attributes("value") = DEFAULT_PASSWORD
End Set
End Property
Protected Overrides Sub OnPreRender(e As EventArgs)
MyBase.OnPreRender(e)
Attributes("value") = Text
End Sub
Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
MyBase.Render(output)
End Sub
최종 클래스
목적은 간단는, 값으로 ***** 항상 표시하는 속성을 덮어 대신/데이터를 설정 얻을 새 속성 암호를 사용하도록. 따라서 사용자가 브라우저에서 "요소 검사"기능을 사용하면 실제 비밀번호를 얻을 수 없습니다.
그러나 페이지 포스트 백에서 txtPassword.Password 속성을 얻으면 빈 문자열을 반환합니다.
누락 된 것이 있습니까? 감사합니다.