System.Environment.UserNameまたはhttpcontext.currentなどを使用すると、すべて自分のサイトがシステム特権でホストされているため、ユーザーとして「システム」を返します。 WMIを試しましたが、これは空になります。asp.net Webアプリケーションを使用してWindowsにログインしているユーザーの名前を取得する
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
ManagementObjectCollection collection = searcher.Get();
WinUser = (string)collection.Cast<ManagementBaseObject>().First()["UserName"];
私は基本認証を使用しており、匿名認証はオフになっています。
これは、イントラネットアプリケーション、ネットワークからアクセスすることができているだけ。ユーザーは勝利を使用してネットワークにログインします。別の独立した勝利ログインを必要とするイントラネット上のサイトを参照します。HttpContext.Current.Userは、ユーザーがイントラネットアプリケーションにログインした際のログ名です。 – user570715
@ user570715:Active DirectoryでWindows認証を使用しない限り、あなたの質問は完全に不可能です。 – SLaks
私たちはWindows認証を使用します。このサイトは、私たちのネットワーク内のサーバー "a"と呼ばれる内部サーバーでホストされています。私は自分のネットワークにログオンして、自分の資格情報を使って "abc"と答えています。 IIS上での基本認証なので、私は一般的な勝利の資格情報を入力します。ネットワークのa/cはユーザー "テスター"と言います。今私はdbに "abcユーザがテスターa/cを使ってアプリケーションにアクセスしました"と書いて欲しいです。 – user570715