3

CredentialCache.DefaultCredentialがドメイン、ユーザー名、およびパスワードの空の文字列を含むICredentialインスタンスを返す理由について誰かが何か考えを持っていますか?IIS7.5でWCFサービスを実行しています。あるサーバーでは正常に動作しますが、別のサーバーでは動作しません。IISアプリケーションでWindows認証が有効になっていることを確認しました。

使用方法は次のとおりです。

string url = string.Format("{0}/departments/finance/_vti_bin/listdata.svc", _IntranetAddress);
var financeDataContext = new FinanceDataContext(new Uri(url))
{
    Credentials = CredentialCache.DefaultCredentials
};
4

2 に答える 2

3

サーバーの1つでどのように機能しているかわかりませんか?このhttp://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspxをすでに読ん でいるといいのです が、「DefaultCredentialsによって返されたICredentialsインスタンスを使用してユーザー名を表示することはできません。 、パスワード、または現在のセキュリティコンテキストのドメイン。」

于 2011-10-17T02:48:40.053 に答える
1

CredentialCache.DefaultCredentialから返されるNetworkCredentialは、単なるプレースホルダーです。デバッガーを使用してそれを見ると、SystemNetworkCredentialタイプであることがわかります。このタイプの内部APIは、統合認証を使用する必要があるかどうかを確認します。現在のユーザー名を取得する方法は他にもあります(WindowsIdentity.GetCurrent()など)。

編集:WCF操作の偽装を指定するには、コントラクトを実装するメソッドに次の属性を追加します。

[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public void SomeMethod() 
{
    // do something here
}
于 2011-10-18T10:37:29.940 に答える