問題タブ [defaultnetworkcredentials]
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/パスワードを覚えているだけの単純なキャッシュですか?
web-services - DefaultCredentials と DefaultNetworkCredentials の使用
これらの資格情報オブジェクトがどのように機能するかを理解するのに苦労しています。実際、期待どおりに動作しない可能性があります。今回の問題の解説です。
Web サービスを介して相互に通信する必要がある 2 つのサーバーがあります。最初のもの ( と呼びましょうServer01
) には、NetworkService アカウントとして実行されている Windows サービスがあります。もう 1 つのServer02
サーバーには、IIS 6.0 で実行されている ReportingServices があります。Windows サービスServer01
は、ReportingServices WebService を使用してServer02
レポートを生成し、電子メールで送信しようとしています。
というわけで、これまでに試したことは次のとおりです。
実行時に資格情報を設定します (これは完全に正常に動作します):
ここで、汎用ユーザーを使用できれば問題ありませんが、許可されていません。そのため、DefaultCredentials または DefaultNetworkCredentials を使用して RS Web サービスに渡します。
または:
どちらにしてもうまくいきません。IIS から常に 401 Unauthorized が返されます。ここでわかっていることは、NetworkService としてログに記録されたリソースへのアクセスを許可したい場合は、それをDOMAIN\MachineName$
( http://msdn.microsoft.com/en-us/library/ms998320.aspx ) に付与する必要があるということです。
リモート SQL Server へのアクセス権の付与
同じドメイン (または信頼されたドメイン) 内の別のサーバー上のデータベースにアクセスしている場合、ネットワーク サービス アカウントのネットワーク資格情報を使用して、データベースに対する認証が行われます。ネットワーク サービス アカウントの資格情報は、DomainName\AspNetServer$ の形式です。ここで、DomainName は ASP.NET サーバーのドメイン、AspNetServer は Web サーバー名です。
たとえば、ASP.NET アプリケーションがドメイン CONTOSO 内の SVR1 という名前のサーバーで実行されている場合、SQL Server は CONTOSO\SVR1$ からのデータベース アクセス要求を認識します。
IIS と同じ方法でアクセスを許可するとうまくいくと想定しました。ただし、そうではありません。または、少なくとも、正しく認証するために何かが正しく設定されていません。
それで、ここにいくつかの質問があります:
「Impersonating Users」についてどこかで読みましたが、これをWindows Serviceのどこかに設定する必要がありますか?
NetworkService ビルトイン アカウントへのアクセスをリモート IIS サーバーに許可することはできますか?
読んでくれてありがとう!
.net - 現在ログインしているユーザーの資格情報 (NetworkCredential) を取得するにはどうすればよいですか?
サードパーティのコンポーネントを利用するコードを書いていますが、使用を開始するときに ICredentials を実装するオブジェクトを提供する必要があります。
以下のように書くと・・・
...そして「資格情報」を渡します。問題ありません。しかし、現在のユーザーの資格情報を渡したいです(これは Windows サービスなので、指定されたユーザーとして実行されます)。
次の両方を試しましたが、どちらも機能していないようです(または何も返されません):
サービスが実行されているユーザー名の資格情報を表す適切なオブジェクトを取得する方法を誰かが提案できますか?
ありがとう
.net - 「デフォルトプロキシ」を使用する場合、ユーザー名/パスワードはどこから来ますか?
ただし、「WebClient」クラス (および ClickOnce も) はデフォルトのプロキシ設定を使用できます (たとえば、application.config に入れる)。
- ユーザー名/パスワードはどこから来たのですか? (XML 構成に設定が表示されません。以下を参照してください)。
- ユーザー名/パスワードの入力をユーザーに手動で求めるようにアプリケーションを構成できますか?
http://msdn.microsoft.com/en-us/library/kd3cf2ex.aspx
PS。 以下のセットアップでテストを行ったところ、ユーザー名/パスワードが正常にログオンした IE セッションからのものではないことが確認されました。
したがって、未解決の質問は、ユーザー名/パスワードはどこから来るのでしょうか? または、カスタム アプリケーション内でプログラムによって提供する必要がありますか? その場合、ClickOnce はどうなりますか? (ユーザーがユーザー名/パスワードを入力できるようにするためのダイアログを起動していないようです)
.net - DefaultNetworkCredentialsまたはDefaultCredentials
プロキシ(ローカルまたはネットワーク内)にクレデンシャルを提供する必要がある場合、どちらを使用する必要がありますか?
これら2つの正確な違いは何ですか?
c# - ASMX:実行時にユーザー/パスワードを設定する
Webサービスに接続したいときこのように書くと:
それは働いています。しかし、ログインフォームが必要です。ユーザーが自分のユーザー/パスを入力できるように
そのため、NetworkCredentialインスタンスを作成し、そのログインフォームから取得したものからそのユーザー/パスメンバーを設定し、上記の行を使用する代わりに、次のように記述しています。
しかし、このように、そのwebServiceのメソッドを呼び出すと、エラーが発生します。
クレデンシャルを設定するのは間違った方法ですか?
c# - システム IP ではなく、別の IP から WebRequest が生成されていますか?
ローカル マシンのプロキシ サーバーをバイパスして WebRequest を送信する次のコードがあります。
編集 1
さて、実行しようとすると403エラーが発生しました。そのため、サーバー ログを確認したところ、HTTP/1.0 要求が IP から送信されていることがわかりましたが、172.24.1.87
私の IP は172.24.17.220
.
これを回避する方法はありますか?これが 403 エラーの根本的な原因だと思います。
助けてください。ありがとう、
スベン
c# - ユーザーパスワードなしで、ユーザープリンシパル名(UPN)でユーザーになりすましてAlfrescoログインチケットを取得する方法
ユーザーパスワードを使用せずに、ユーザープリンシパル名(UPN)のみを使用してAlfrescoログインチケットを取得する機能を備えたDLLを作成しています。alfrescoRESTAPIサービス/wcserviceを呼び出しています。AlfrescoでNTLMを使用しています。
WindowsIdentity
ここで説明されているように、コンストラクターを使用してユーザーを偽装していますhttp://msdn.microsoft.com/en-us/library/ms998351.aspx#paght000023_impersonatingbyusingwindowsidentity。チェックしたところ、ユーザーは適切に偽装されています(プロパティをチェックWindowsIdentity.GetCurrent().Name
しました)。
HttpWebRequest
ユーザーになりすました後、クレデンシャルを作成して設定しようとしますCredentialsCache.DefaultNetworkCredentials
。エラーが発生します:
リクエストのクレデンシャルを設定するために使用new NetworkCredential("username", "P@ssw0rd")
すると、Alfrescoログインチケット(HttpStatusCode.OK
、200)を取得します。
ユーザーパスワードなしでAlfrescoログインチケットを取得する方法はありますか?
これが私が使用しているコードです:
Alfresco stdout.logからのレコードは次のとおりです(何らかの形で役立つ場合):
wcf - 現在のユーザー資格情報で Web サービスを呼び出す
Windows認証で構成されたカスタムWCF Webサービスと、前者を呼び出す必要があるWPFクライアントアプリケーションがあります。このサービスはユーザー名をチェックし、データベースから特定のデータを取得します。そのため、アプリケーションを実行しているユーザーの資格情報を使用してサービスを呼び出す必要があります。
問題は、私のサービスが Windows 認証を使用して別のサイトでホストされており、ユーザーが別のアカウントで認証できることです。Windows (または IE?) は、最後に使用されたアカウントをキャッシュし、クライアント アプリもそれを使用します!
例:
「MYDOMAIN\AdminUser」で Web サイトに入ります
次のコードを実行します (クライアント アプリから、Web コードではありません)。
サービスは「MYDOMAIN\AdminUser」によって呼び出されます..
名前とパスワードを使用して NetworkCredential を作成できることはわかっていますが、それをどこかに保存したり、暗号化したりする必要があります。
問題を明確にするために: あるアカウントで実行されているクライアント プロセスは、別のアカウントでサービスを呼び出します。
c# - NetworkCredential、CredentialCache、ICredentials すべて何も返さない
Windows フォーム アプリを使用していますが、Google サーバーから JSON 文字列を返そうとすると、407 プロキシ サーバー エラーが返され続けます。WebRequest Credentials を "DefaultCredentials" または "DefaultNetworkCredentials" として設定することにより、セキュリティ コンテキストを正しく設定するだけでよいと考えるようになりました。ただし、私が使用したすべてのメソッド (件名を参照) は常に "" を返しました。
煩わしいことは、アプリが私のマシンで実行され、公開され、VS 2008 を介して実行されている場合に完全に動作することですが、他のユーザーが試行すると、次のエラーが生成されます。
System.Net.HttpWebRequest.GetResponse() で
私がハゲになる前に、どんなアイデアでも!
前もって感謝します
ハ
編集:要求されたコード。私は次のかなりの数のバリエーションを試しましたが、どれもうまくいかないようです。
または string url = "http://www.blah.com"; Uri uri = 新しい Uri(url); ICredentials 資格情報 = CredentialCache.DefaultCredentials; NetworkCredential 資格情報 = credentials.GetCredential(uri, "Basic");
また
の中へ
また
私も両方試しました
と