2010-05-23 47 views
11

Tôi đang bắt đầu một ứng dụng mới và tôi muốn biết cách yêu cầu mật khẩu để mở ứng dụng đó.Mật khẩu bảo vệ ứng dụng iPhone

Tôi đã xem xét một UIActionSheet trong ứng dụng didFinishLaunchingWithOptions phương pháp của tệp ứng dụng ủy nhiệm ứng dụng, nhưng tôi không chắc chắn về cách thực hiện. Tôi sẽ tiếp tục cố gắng.

Tìm thấy this video, điều này có vẻ khá hữu ích.

Bây giờ tôi đã có UIActionSheet để bật lên hiển thị "Nhập mật khẩu" và đang cố gắng tìm cách thêm bàn phím vào trang tính.

+0

Tại sao wiki cộng đồng này? – kennytm

+0

Tôi nghĩ điều gì đó có thể giúp những người có cùng vấn đề nên tham gia vào cộng đồng wiki. Tôi có nhầm không? Tôi xin lỗi nếu có. – Thomas

+0

Bạn nên yêu cầu một mod để xóa điều này và tạo một câu hỏi khác mà không cần wiki cộng đồng. –

Trả lời

8

Tôi nghĩ bạn có thể có may mắn hơn bằng cách sử dụng phiên bản UIViewController đầy đủ thay vì UIActionSheet. Thêm hành vi bàn phím vào một trang tính hành động sẽ rất khó nếu không phải là không thể.

Nếu bạn tạo một lớp con UIViewController, bạn có thể làm cho ứng dụng của bạn ủy quyền trình bày nó trong -application:didFinishLaunchingWithOptions:. Giả sử bạn đang sử dụng một số loại UIViewController hoặc UINaviagtionController cho giao diện chính của mình, bạn có thể có bộ điều khiển chế độ xem mật khẩu được trình bày một cách bình thường khi khởi động bằng cách sử dụng UIViewController - presentModalViewController:animated:.

Khi bạn có bộ điều khiển chế độ xem mật khẩu, bạn cần phải thêm UITextField để nhập mật khẩu. Làm cho trường văn bản trở thành firstResponder (bằng cách gọi becomeFirstResponder trên đó) và điều đó sẽ khiến bàn phím được hiển thị. Bạn cũng có thể muốn đặt thuộc tính keyboardAppearance trên trường văn bản để kiểm soát cách bàn phím xuất hiện nếu ví dụ bạn muốn giới hạn mã PIN số so với mật khẩu đầy đủ. Việc đặt thuộc tính secureTextEntry cũng có thể được mong muốn để ngăn không cho mật khẩu thực được hiển thị. Xem giao thức UITextInputTraits trên UITextField cho cả hai tùy chọn đó.

Để đảm bảo an toàn cho ứng dụng, bạn sẽ tạo bộ điều khiển chế độ xem mật khẩu để không có nút hoặc tùy chọn điều hướng nào ngoài nút loại "Gửi" hoặc "Đăng nhập". Nếu người dùng nhập mật khẩu chính xác, bạn bỏ qua trình điều khiển chế độ xem và cho phép họ vào. Nếu họ không biết mật khẩu, lựa chọn duy nhất của họ là nhấn vào nút Trang chủ để thoát khỏi ứng dụng của bạn vì họ không có cách nào để tiếp tục ngoài bộ điều khiển chế độ xem phương thức.

+0

Cảm ơn! Điều đó có ý nghĩa khi đọc nó. Tôi chưa có cơ hội thử nó. Tôi đánh giá cao sự giúp đỡ của bạn! – Thomas

+0

Triển khai [Tham chiếu giao thức UIKeyInput] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKeyInput_Protocol/Reference/Reference.html) cũng sẽ là một ý tưởng hay để bạn có thể zeroize mật khẩu từ kho dữ liệu cơ bản. Quá trình zeroization thường được yêu cầu bởi các cơ quan NIST, DoD (STIG), CIS (Điểm chuẩn bảo mật), v.v. – jww

+0

Tôi có thể cất mật mã ở đâu một cách an toàn? – surlac

1

Điều gì về một UIAlertView? Nhưng tôi không biết liệu ứng dụng có bị từ chối hay không. Một số người nói có, người kia không. Không biết nếu mọi thứ thay đổi trong quá khứ.

Dưới đây là một số liên kết:

http://junecloud.com/journal/code/displaying-a-password-or-text-entry-prompt-on-the-iphone.html

UITextField in UIAlertView on iPhone - how to make it responsive?

http://iphone-dev-tips.alterplay.com/2009/12/username-and-password-uitextfields-in.html

http://discussions.apple.com/thread.jspa?threadID=1674641&start=15&tstart=0

http://icodeblog.com/2009/11/09/iphone-coding-tutorial-inserting-a-uitextfield-in-a-uialertview/

Hầu hết các liên kết đều giống nhau, tất cả đều sử dụng CGAffineTransformMakeTranslation. Ai đó nói rằng điều này là không cần thiết cho iOS 4. Và đôi khi có vấn đề. Đã không dùng thử, bởi vì tôi không muốn bị từ chối ...

+0

Cảm ơn! Tôi đã không có nhiều thời gian để làm việc trên ứng dụng này nữa, nhưng khi tôi nhặt nó trở lại tôi sẽ chắc chắn để kiểm tra lời khuyên của bạn. Cảm ơn! – Thomas

Các vấn đề liên quan