web-dev-qa-db-ja.com

Windows認証アプリケーションで現在のユーザーからネットワーク資格情報を取得する

現在のユーザーオブジェクトを取得し、資格情報を取得して、AX .NET Business Connectorへの接続に使用しているNetworkCredentialオブジェクトに渡すことができるかどうか疑問に思っていました。現時点では、NetworkCredentialオブジェクトをインスタンス化するときに設定した特定のユーザーとして接続するように指定する必要があります。

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

私はprivate NetworkCredential nc = (NetworkCredential)HttpContext.User;のようなことをしたいと思っていましたが、明らかにそれは機能しません...

そうすれば、たとえば、私が指定したユーザーによってすべてが作成されるように、どのユーザーが販売注文を作成したかを追跡しやすくなります。

14
CallumVass

CredentialCache.DefaultNetworkCredentials

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

28

私はあなたの質問を完全には理解していませんが、資格情報が必要なASP.NETからの電話ですか?あなたが試みることができます:

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

ユーザーがメンバーシッププロバイダーを介して既に認証されていると仮定します。

5
Jaime Torres