2009-06-12 15 views
1

私は自分のアプリケーションで使用しているSFAuthoizationViewを持っています。私は自分のコードからauthorizeメソッドを呼び出して、現在認可されていない場合にユーザーに認証を促しています。SFAuthorizationView authorize:メソッドが動作しない

私の問題は、この方法が機能していないことです。

私のコードはauthViewSFAuthorizationViewで、authorizeMeはボタンがクリックされたときに呼び出されるメソッドです(ログメッセージが表示されるので、呼び出されていることがわかります)。

ロックがロックされている場合、認証メッセージはfalseを返すだけで、ユーザーにパスワードを要求するようには見えません。

誰もがこのことを知っていますか?

- (void) mainViewDidLoad { 
    [authView setDelegate:self]; 
    [authView setString:"Test String"]; 
    [authView setAutoupdate:YES]; 
} 

- (IBAction)authorizeMe:(id)sender { 
    NSLog(@"Authorizing..."); 
    [authView authorize:authView]; 
} 

- (void)authorizationViewDidAuthorize:(SFAuthorizationView *)view { 
    self.enabled = YES; 
} 

- (void)authorizationViewDidDeauthorize:(SFAuthorizationView *)view { 
    self.enabled = NO; 
} 

答えて

1

私はこの同じ問題を抱えていましたが、いくつか気づいたことがあります。

SFAuthorizationViewを初期化するときに、これらのフラグの両方を設定しなければならないSFAuthorizationViewは、ユーザーと対話する方法を承認するためにために:

AuthorizationFlags flags = kAuthorizationFlagInteractionAllowed | kAuthorizationFlagExtendRights; 
[m_authView setFlags:flags]; 

をしかし、私はSFAuthorizationViewが、これを使用するように設計されたとは思いません方法。

これらのフラグを設定した後、[m_authView updateStatus:m_authView]を呼び出します。管理者の資格情報の入力を求められ、[m_authView setAutoupdate:YES]を設定した場合ユーザーはランダムにパスワードの入力を求められ、ユーザーがキャンセルをクリックするとプロンプトが表示されなくなります。

私は、SFAuthorizationViewのauthorizeメソッドが、ユーザーのやりとりを意図的に抑制していると考えています。

authorize :(void)buttonPressed:(id)senderの代わりに呼び出すことのできる方法があるようです。このメソッドは文書化されておらず、コンパイル警告を生成しますが、10.6で動作します。

+0

注意しなければならないのは、ユーザーが権限を持っているかどうか(実際にはロックを解除していないかどうか)を確認する必要があるだけの場合は、 'AuthorizationCopyRights [[authorizationView authorization] authorizationRef]、[authorizationView authorizationRights]、kAuthorizationEmptyEnvironment、kAuthorizationFlagDefaults | kAuthorizationFlagExtendRights | kAuthorizationFlagInteractionAllowed、NULL) 'これは必要に応じてユーザにプロンプ​​トを表示します。 –

1

私は推測している@"Test String"は、あなたがシステムに登録した権限の名前ではありません。承認ビューでは、あなたが要求している権利を知る必要があります。 This documentにはその操作方法の概要が記載されています。

+0

しかし、なぜ手動でロックアイコンをクリックしてペインのロックを解除する権限がありますが、コードで権限を与えないのはなぜですか? –

関連する問題