語言

ICallbackHandler.HandleCallbacks(ICallback[]) 方法

定義

檢索或顯示所提供的回撥資訊。

[Android.Runtime.Register("handle", "([Ljavax/security/auth/callback/Callback;)V", "GetHandleCallbacks_arrayLjavax_security_auth_callback_Callback_Handler:Javax.Security.Auth.Callback.ICallbackHandlerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void HandleCallbacks(Javax.Security.Auth.Callback.ICallback[]? callbacks);
[<Android.Runtime.Register("handle", "([Ljavax/security/auth/callback/Callback;)V", "GetHandleCallbacks_arrayLjavax_security_auth_callback_Callback_Handler:Javax.Security.Auth.Callback.ICallbackHandlerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member HandleCallbacks : Javax.Security.Auth.Callback.ICallback[] -> unit

參數

callbacks
ICallback[]

由底層安全服務提供的物件陣列 Callback ,包含被要求檢索或顯示的資訊。

屬性

例外狀況

若發生 I/O 相關錯誤

如果無法 CallbackHandler 處理特定的 Callback

備註

檢索或顯示所提供的回撥資訊。

方法實 handle 作會檢查傳送的物件實例 Callback ,以擷取或顯示所請求的資訊。 以下範例旨在幫助說明 handle 方法實作可能的樣貌。 此範例程式碼僅供參考。 為了簡化,許多細節,包括正確的錯誤處理,都省略了。

{@code
            public void handle(Callback[] callbacks)
            throws IOException, UnsupportedCallbackException {

              for (int i = 0; i < callbacks.length; i++) {
                 if (callbacks[i] instanceof TextOutputCallback) {

                     // display the message according to the specified type
                     TextOutputCallback toc = (TextOutputCallback)callbacks[i];
                     switch (toc.getMessageType()) {
                     case TextOutputCallback.INFORMATION:
                         System.out.println(toc.getMessage());
                         break;
                     case TextOutputCallback.ERROR:
                         System.out.println("ERROR: " + toc.getMessage());
                         break;
                     case TextOutputCallback.WARNING:
                         System.out.println("WARNING: " + toc.getMessage());
                         break;
                     default:
                         throw new IOException("Unsupported message type: " +
                                             toc.getMessageType());
                     }

                 } else if (callbacks[i] instanceof NameCallback) {

                     // prompt the user for a username
                     NameCallback nc = (NameCallback)callbacks[i];

                     // ignore the provided defaultName
                     System.err.print(nc.getPrompt());
                     System.err.flush();
                     nc.setName((new BufferedReader
                             (new InputStreamReader(System.in))).readLine());

                 } else if (callbacks[i] instanceof PasswordCallback) {

                     // prompt the user for sensitive information
                     PasswordCallback pc = (PasswordCallback)callbacks[i];
                     System.err.print(pc.getPrompt());
                     System.err.flush();
                     pc.setPassword(readPassword(System.in));

                 } else {
                     throw new UnsupportedCallbackException
                             (callbacks[i], "Unrecognized Callback");
                 }
              }
            }

            // Reads user password from given input stream.
            private char[] readPassword(InputStream in) throws IOException {
               // insert code to read a user password from the input stream
            }
            }

Java 文件 javax.security.auth.callback.CallbackHandler.handle(javax.security.auth.callback.Callback[])。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於