2013-05-24 27 views
14

Tôi có một vài nút trên biểu mẫu web và khi người dùng nhấp vào, họ sẽ cập nhật hộp văn bản. Điều này làm việc cho đến khi tôi thêm vào textmode = mật khẩu. Bây giờ hộp văn bản không hiển thị văn bản nữa. Tôi đã gỡ lỗi ứng dụng và thuộc tính văn bản đang nhận được giá trị, nhưng một lần nữa nó không hiển thị.Textbox sử dụng mật khẩu văn bản không hiển thị văn bản asp.net C#

Dưới đây là những gì tôi đã cố gắng:

protected void btn_punch_7_Click(object sender, EventArgs e) 
    { 

     const string string_punch_Number_7 = "7"; 
     var text = txt_punch.Text; 
     text += string_punch_Number_7; 

     txt_punch.Text = text; 


    } 

    protected void btn_punch_8_Click(object sender, EventArgs e) 
    { 
     const string string_punch_Number_8 = "8"; 
     var text = txt_punch.Text; 
     text += string_punch_Number_8; 

     txt_punch.Text = text; 

    } 

Tôi cũng có mệt mỏi này:

public partial class WebForm3 : System.Web.UI.Page 
{ 
    public string string_punch; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     MultiView1.SetActiveView(View1); 

     txt_punch.Width = 300; 
     txt_punch.Height = 50; 
     txt_punch.MaxLength = 4; 
     txt_punch.Attributes.Add("OnChange", string_punch); 

    } 

    protected void btn_punch_7_Click(object sender, EventArgs e) 
    { 

     const string string_punch_Number_7 = "7"; 
     string_punch = txt_punch.Text; 
     string_punch += string_punch_Number_7; 

     txt_punch.Text = string_punch; 


    } 

    protected void btn_punch_8_Click(object sender, EventArgs e) 
    { 
     const string string_punch_Number_8 = "8"; 
     string_punch = txt_punch.Text; 
     string_punch += string_punch_Number_8; 

     txt_punch.Text = string_punch; 

    } 
+0

Bạn không nên buộc văn bản hiển thị trên trường mật khẩu. Nếu bạn ép buộc văn bản, thì bất kỳ ai cũng có thể lấy mật khẩu bằng cách xem html cho trang web của bạn. –

+0

@ bastos.sergio Vấn đề lớn như thế nào? HTML sẽ không được lưu trữ ở bất cứ đâu. Trừ khi người nhập mật khẩu sẽ lưu trang vào đĩa ngay trước khi gửi. –

+0

Nó không cần phải được lưu trữ ... Hãy thử điều này, kích chuột phải vào bất cứ nơi nào trên một trang web và chọn tùy chọn "xem mã nguồn". Đó là tất cả những gì bạn cần để xem html ... –

Trả lời

48

Bạn tuyệt vọng đến mức nào?

Nếu bạn không đủ tuyệt vọng để thử bất cứ điều gì, bất cứ điều gì để làm cho nó hoạt động, đừng đọc tiếp. Điều này sẽ không được tốt đẹp. ĐƯỢC? ĐƯỢC.

Bí quyết là làm cho ứng dụng web nghĩ rằng đó không phải là một hộp mật khẩu. Nói cách khác, không sử dụng TextMode="password".
Sau đó, trong Page_Load, hãy đặt txt_punch.Attributes["type"] = "password"

Vậy đó. Trình duyệt sẽ biết đó là một trường mật khẩu (và hiển thị các dấu hoa thị hoặc dấu chấm), nhưng phía máy chủ sẽ không biết, vì vậy nó sẽ gửi nội dung cho khách hàng vì nó là văn bản thuần túy. Tất nhiên, điều này cũng sẽ đặt mật khẩu trong mã nguồn trang web ...

+0

Tôi không chắc chắn rằng tôi đang tuyệt vọng, lol.I đã nghĩ về điều này, trước khi tôi đăng câu hỏi. Tôi thực sự muốn làm điều này trong mã phía sau, hoặc bảo mật và những gì không. Nhưng nếu thất bại. Cảm ơn bạn đã nhập btw. – nate

+0

Hoàn toàn dễ dàng nhưng sau khi tôi thấy điều này :) –

+0

Đây là một giải pháp tuyệt vời đặc biệt nếu bạn cần kiểm tra xem văn bản đã thay đổi hay chưa. Sử dụng "TextBox.Attributes.Add (" value "," yourPassword ");" kích hoạt sự kiện onTextChanged của bạn. Tuyệt quá. – djfranzwa

12

Khi bạn thiết lập thuộc tính TextMode của một TextBox để Password hành vi mặc định là dành cho nó không hiển thị giá trị của thuộc tính Text.

Điều này nhằm ngăn các mật khẩu không được che giấu hiển thị trong nguồn HTML của trang.

Một giải pháp là sử dụng một thuộc tính để giữ giá trị mật khẩu:

TextBox.Attributes.Add("value", "yourPassword"); 

Source

+1

Tôi đã thử điều đó, vui lòng xem bài đăng thứ hai của tôi. – nate

+0

@nate - bỏ lỡ điều đó, xin lỗi. Không biết những gì khác để đề nghị. – ChrisF

+0

NP, cảm ơn bạn đã thử. – nate

-1

Mật khẩu nói chung không có nghĩa là để hiển thị, nhưng nếu bạn đang có ý định làm như vậy trang này có thể giúp bạn Solution

+7

Chỉ liên kết câu trả lời không phải là câu trả lời hay. Bạn có thể bao gồm các yếu tố cần thiết của câu trả lời ở đây không. – ChrisF

0

Dựa tắt tùy chọn một trong những câu trả lời Kola của bạn có thể thử này:

TextBox.Attributes["value"] = "Whatever value goes here"; 
0

Đây là một BUG asp.net !! Thuật toán xác thực email rất nghiêm ngặt, dẫn đến việc loại trừ một số email hợp lệ. Nếu bạn chuyển TextMode từ "Mật khẩu" tp "SingleLine", mã của bạn sẽ hoạt động.

0

chúng tôi không thể gán trực tiếp giá trị cho hộp văn bản mật khẩu. để gán giá trị cho mật khẩu hộp văn bản, chúng tôi nên sử dụng thuộc tính hộp văn bản

Textbox1.Attributes.Add("value",variable/"string");