問題タブ [credui]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - DefaultNetworkCredentials には null 値があります。ユーザーにプロンプトを表示する必要があります...どのように?
特定の状況下で、SharePoint Web サービスを使用するデスクトップ アプリで、DefaultNetworkCredentials が null 値を持つことになり、呼び出しが失敗します。次に、ユーザーの資格情報を取得する必要がありますが、簡単な方法は見つかりませんでした。
http://www.pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.htmlで概説されているソリューションの実装を検討しています
...しかし、これでもパスワードを処理する必要があります。私は見ましたが、パスワードを保存しなくても、ユーザーにプロンプトを表示して NetworkCredential を直接返す、より直接的な方法を見つけることができませんでしたか?
ありがとう、
編集:探しているものを正確に見つけることができないようです...これが発生した場合、ユーザーに自分でプロンプトを表示する必要があります。
ただし、これらの回答の一部を正しく解釈している場合、そもそもこのように DefaultNetworkCredentials が null になるのはエラー状態である可能性があります。そうですか?DefaultNetworkCredentials を強制的に入力する方法はありますか、それともターゲット URI (その日? そのアプリケーション / セッション?) に使用された最後のドメイン/ユーザー ID/パスワードを覚えているだけの単純なキャッシュですか?
windows - Win32:CredUIConfirmCredentialsが予期しない動作をする
CredUIConfirmCredentialsをCredUIPromptForCredentialsと組み合わせ て使用しています。
を設定し、ユーザーが最初EXPECT_CONFIRMATION
にクレデンシャルを提供したときに、を呼び出すと期待どおりにNO_ERRORが返されます。CredUIConfirmCredentials
ただし、CredUIConfirmCredentials
同じクレデンシャルを使用した以降のすべての呼び出しで、ERROR_INVALID_PARAMETERが返されます。これは、SDKドキュメントで次のように説明されています。
クレデンシャルに無効または一貫性のないデータが含まれているため、待機中のクレデンシャルを確認しようとして失敗しました。
これは、元々正常に保存されたのとまったく同じクレデンシャルであるため、かなり混乱します。
同じユーザー名に別のパスワードを入力した場合も、同じ結果が返されます。さらに紛らわしいのは、新しいクレデンシャルが実際に永続化されていることです。これは、エラーが発生したことではなく、永続化されたクレデンシャルが実際に上書きされたことを戻り値が示していることを示しているようです。何かが足りないのですか、それともドキュメントが間違っていますか?
バックグラウンド
Windowのクレデンシャルシステムを使用して、独自のアプリケーションのクレデンシャルを保存できます。いくつかの「ターゲット」の「一般的な」クレデンシャルの入力を求めるプロンプトをWindowsに指示します。
擬似コード:
次に、Windowsにダイアログボックスが表示されます。
次に、ユーザーが入力した資格情報を確認するのはあなたの仕事です。それらが有効な場合は、ConfirmCredentialsを呼び出してWindowsにこれを通知します。これは、有効な資格情報のみが保存されるようにするためです。
クレデンシャルが有効であることが確認されると、Windowsはそれらをセキュアストアに保存します。これは、コントロールパネルで確認できます。
キーワード:credui、CredUIConfirmCredentials
delphi - CredWrite は、Win32 エラー コード 2 (ERROR_INVALID_FUNCTION) 「正しくない関数」を返します。
私はCredWriteを呼び出そうとしていますが、 ERROR_INVALID_FUNCTIONを返しています。CredReadを呼び出してパスワード ストアから資格情報をフェッチし、CredUIPromptForCredentialsを使用して新しい資格情報を保存できます。
しかし、CredWrite を機能させる方法がわかりません。
私が使用しているコードは次のとおりです。
そして GetLastError は 1 ( ERROR_INVALID_FUNCTION
)を返しています
この関数は間違っていますか? を返すことすらありませんERROR_INVALID_PARAMETER
。「正しくない関数」を返します。何が間違っていますか?
CredWrite を呼び出すサンプル コードはありますか?
ノート
- Ansi バージョン (CredWriteA) を呼び出してみましたが、同じ結果です
- 私は と を使ってみまし
CRED_PERSIST_SESSION
たCRED_PERSIST_LOCAL_MACHINE
に加えてCRED_PERSIST_ENTERPRISE
c# - .Net WebApp: フォーム署名クラス/メソッドを作成する
私は、より包括的なソリューションの断片を探して Web を精査しました。うまくいかなかったので、助けを求めます。
問題: Windows 統合認証を使用する .Net/C# WebApp があります。このアプリケーションは、ユーザーが要求を送信できるようにするカスタム フォーム アプリケーションです。これらの要求は、要求を確認して承認する監督者やその他の関係者に転送されます。
監査目的で、私は各監督者にフォームに「署名」してもらう必要があります。簡単な解決策 - アクティブなブラウザー セッション情報を使用します。ユーザーが「承認」ボタンをクリックすると、その情報がデータベースに記録されます (ID と日時)。しかし、監査人はこの解決策を好みません。彼らはそれを安全ではないと考えています。彼らは、ユーザーが ID とパスワードの入力を強制される資格情報について、別のチャレンジを望んでいます (そして、すぐに ID/パスワードの代わりにトークン/PIN の組み合わせを提示します)。
このフォームの infopath バージョンでこれを満たすために、CredUIPromptForCredentials を使用しました。そのコード (C# で記述されていますが) は、新しいカスタム WebApplication に直接移植されていません。私は掘り下げて、新しい CredUIPromptForWindowsCredentials に関する多くのリソースを明らかにしました。
Windows Vista/7 の C# で認証ダイアログを表示する
C# .Net 3.5 SP1 で認証ダイアログを表示する方法 Windows セキュリティ カスタム ログイン検証
これは、私が達成しようとしていることの真の精神です。上記の記事のコードにほとんど変更を加えずに (そして以前の InfoPath フォームのコードをいくつか借りて)、プロンプトとテストの機能するシステムを手に入れることができました。
誰かが興味を持っている場合は、喜んで既存のコードを共有したいと思いますが、上記の既存のコードと非常によく似ています (ほぼそのまま)。唯一の違いは、DirectoryEntry オブジェクトをインスタンス化し、そのオブジェクトを DirectorySearcher オブジェクトに渡して資格情報が機能するかどうかをテストすることによって、実際に資格情報をテストする個別の isAuthenticated メソッドです。
しかし、それほど速くはありません。私が言ったように、このコードは機能しますが、Visual Studios 2012 でデバッグ モードで実行した場合にのみ機能します。アドレスを入力してサイトにアクセスし、ボタンをクリックしてフォームに「署名」すると、サイトが回転し、セキュリティが表示されません。ダイアログ。Windows認証を許可するIIS設定が、アプリケーションが資格情報を要求することを妨げているかのようです(これは私の推測です)。これは、デバッガーを使用してサイトを実行する場合には当てはまりません。
この障壁を乗り越えたら、実際にさらにテストを行って、このコードが PKI カードによる認証をサポートするかどうかを確認する必要があります。CredUIがプロンプトをウィンドウに渡して処理するので、そうなると思います。
質問は次のとおりです。1) Debug (localhost) で実行されている IIS サーバー VS を介してメソッドが呼び出されたときに、Windows セキュリティ ウィンドウのポップアップを妨げている可能性があるのは何ですか?
2) CredUIPromptForWindowsCredentials を実装して PKI を操作した経験のある人はいますか?
2a) もしそうなら、CredUIPromptForWindowsCredentials は実際に追加コードなしで PKI をサポートしますか (Windows ワークステーションがすべてのハードウェア、ドライバー、およびミドルウェアで構成されていると仮定して)?
あなたが貸すことができる洞察を前もって感謝します。
フィル S.
c++ - Windows 8 資格情報プロバイダーのドメイン ユーザー
ドメイン ユーザーをカスタム資格情報プロバイダーで認証しようとして問題が発生しています。Microsoft のサンプルには、_fIsLocalUser
チェックインされた変数がありますCSampleCredential::GetSerialization
。これは通常、ほとんどの場合に当てはまります。ただし、ドメインに接続してOther User
タイルを使用すると、 The parameter is incorrect
. 資格情報がシリアライズされている場合、推奨される形式でさえ<Domain>\<Username>
受け入れられないようです。できれば私も応援<Username>@<UPN>
したいです。
この方法が問題かどうかはわかりませんが、ここにドキュメントがありますhttps://msdn.microsoft.com/en-us/library/windows/desktop/aa374802(v=vs.85).aspx
ありがとう
java - JNA Java CredUIPromptForWindowsCredentialsW
この関数を JNA に変換しようとしています。
そして電話:
asまたはで宣言しようとしpUiInfo
ました。CredUIPromptForWindowsCredentialsW
Pointer
PointerByReference
関数CredUIPromptForWindowsCredentialsW
がコード 160 (「不正なパラメーター」) を返します。何が問題なのですか?