0

特定の状況下で、SharePoint Web サービスを使用するデスクトップ アプリで、DefaultNetworkCredentials が null 値を持つことになり、呼び出しが失敗します。次に、ユーザーの資格情報を取得する必要がありますが、簡単な方法は見つかりませんでした。

http://www.pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.htmlで概説されているソリューションの実装を検討しています

...しかし、これでもパスワードを処理する必要があります。私は見ましたが、パスワードを保存しなくても、ユーザーにプロンプ​​トを表示して NetworkCredential を直接返す、より直接的な方法を見つけることができませんでしたか?

ありがとう、

編集:探しているものを正確に見つけることができないようです...これが発生した場合、ユーザーに自分でプロンプトを表示する必要があります。

ただし、これらの回答の一部を正しく解釈している場合、そもそもこのように DefaultNetworkCredentials が null になるのはエラー状態である可能性があります。そうですか?DefaultNetworkCredentials を強制的に入力する方法はありますか、それともターゲット URI (その日? そのアプリケーション / セッション?) に使用された最後のドメイン/ユーザー ID/パスワードを覚えているだけの単純なキャッシュですか?

4

3 に答える 3

0

パスワードを処理するものはわかりませんが、SecureStringが役立つ場合があります。

于 2009-06-16T03:10:24.020 に答える
0

初めての扱いは避けられないと思います。ただし、資格情報マネージャーにフックして、その時点からキャッシュされるようにします。 これを行う方法に関する記事を次に示します。p/invoke は重いですが、ユーザーにより一貫したエクスペリエンスを提供できます。

于 2009-06-16T01:05:03.713 に答える
0

ユーザーが既に入力した情報についてしつこく要求するのではなく、根本的な問題である null 資格情報に取り組みます。

現在のアカウントとは異なる方法で SharePoint にログインできるようにしたい場合を除きます (おそらく便利な機能です)。

.NET には資格情報を処理するためのコードがあるのに、外部の dll にアクセスしてアプリに別の依存関係を追加することで、なぜそれを推測するのでしょうか?

あなたの環境にあるコードのセキュリティ リスクについて私は十分に知りませんが、資格情報オブジェクトをクライアント メモリにのみ保存することは、ほとんどの状況で「十分に安全」であると考えていました。

于 2009-06-16T00:32:08.877 に答える