2009-06-15 10 views
0

SharePoint Webサービスを使用している私のデスクトップアプリケーションは、null値を持つDefaultNetworkCredentialsで終わるので、呼び出しは失敗します。私はその後、ユーザーの資格情報を取得する必要がありますが、私はそうするためのまっすぐな方法を見つけていない。DefaultNetworkCredentialsには値がありません。ユーザーを促す必要があります...どのように?

私は、しかし、これはまだ私が本当にむしろないと思いパスワードを処理することを要求しようとしている... http://www.pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.html

で概説したソリューションを実装検討しています。私は見ましたが、パスワードを保存する必要なしに、ユーザーにプロンプ​​トを出してNetworkCredentialを直接返すより直接的な方法を見つけることができませんでしたか?

おかげで、

編集:私は私が探しているまさに...私はこの問題が発生したときに、ユーザーを自分自身を要求する必要がありますを見つけるつもりはないように見えます。

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

答えて

0

初めて扱うことは避けられないと思います。しかし、あなたはCredential Managerにフックして、その時点からキャッシュされるようにします。 Here's an article on how to do that。 p/invokeでは重いですが、ユーザーに一貫性のある体験を与えることができます。

+0

ありがとうございます。私はそれを試してみましょう。 – Steve

0

ユーザーが既に入力した情報について、ユーザーの悩みを解決するのではなく、ヌルの資格情報を基礎にして作業します。

あなたが現在のアカウントとは別の形でSharePointにログインできるようにしたいのでない限り(おそらく便利な機能です)。

.NETは資格情報を扱うためのコードを持っています。なぜ外部DLLに出て別の依存関係をあなたのアプリケーションに追加するのでしょうか?

私はあなたの環境でコードセキュリティリスクについて十分に知っていませんが、ほとんどの状況で、資格情報オブジェクトをクライアントメモリに格納するだけでは "十分安全"であると思いました。

0

私はあなたのパスワードを処理する何かを知らないが、SecureStringが役に立つかもしれない。

関連する問題