2012-07-10 50 views
13

現在のユーザーオブジェクトを取得して資格情報を取得して、AXに接続するために使用しているNetworkCredentialオブジェクトに渡すことができるかどうか疑問に思っていました.NETビジネスコネクタ。 「private NetworkCredential nc = (NetworkCredential)HttpContext.User;しかし、明らかにそのウォン:Windows認証アプリケーションで現在のユーザーからネットワーク資格情報を取得する

private NetworkCredential nc = new NetworkCredential("myUser", "myPassword", "myDomain");

私のような何かを期待していた。現時点では私はNetworkCredentialオブジェクトをインスタンス化するときに設定特定のユーザーとして接続し、それを指定するために抱えているとして、トンの仕事...

そうすれば、それは私がドン...現時点ではすべてが私が指定したユーザーによって作成されるように、ユーザーは、例えば、販売注文を作成しているのを追跡するために

答えて

23

CredentialCache.DefaultNetworkCredentials

DefaultNetworkCredentialsによって返される資格情報は、アプリケーションが実行されている現在のセキュリティコンテキストの認証資格情報を表します。クライアント側のアプリケーションでは、通常、これらはアプリケーションを実行しているユーザーのWindows資格情報(ユーザー名、パスワード、およびドメイン)です。

+2

これを使用したとき、資格はすべて空文字列ですか? – CallumVass

+1

'NetworkCredential'から派生した内部クラス' SystemNetworkCredential'を返します。それの中に隠された魔法がありますが、それは意図的にユーザー名、パスワードなどを空の文字列として設定します。 –

+0

Ahh ok、私はそれを試してみるつもりです。ありがとうございます – CallumVass

4

簡単ですあなたの質問を完全に理解することはできませんが、ASP.NETからの呼び出しが必要です信用証明?次のように試すことができます。

Uri uri = new Uri("http://tempuri.org/"); 
ICredentials credentials = CredentialCache.DefaultCredentials; 
NetworkCredential credential = credentials.GetCredential(uri, "Basic"); 

あなたのユーザーは、既にメンバーシッププロバイダーを通じて認証されているものとします。

+3

私はASP.NET MVC 3 Windows認証アプリケーションを使用しているので、認証されていると想定していますか? 'credential'を見ると、すべてのフィールドが空文字列ですか? – CallumVass

関連する問題