2012-04-18 11 views
0

私はasp.net Webサイトに対して非常に簡単なロギングプロセスを実装しました。このWebサイトは、誰もログオンしていないサーバー上のIIS上でホストされています。クライアントは、このWebサイトにローカルネットワークアドレスで接続します。私は、実行された操作とそれにかかる時間についての情報を記録しています。誰かがログファイルを読もうとすると、誰の操作も同じ場所に書かれているため、彼はどの操作が実行されたのかを知ることができません。クライアントIDを確認する

何かを記録するたびにユーザーを識別するための情報を追加したいと考えています。私はHttpContext.Current.Userにアクセスしようとしましたが、これは常に汎用的なIDを持っています。私はHttpContext.Sessionも見ましたが、関連するものは見つかりませんでした。

私は、ユーザのコンピュータ名またはユーザ名(ウィンドウにログインするのに使ったもの)などを記録したいと思いますユーザーがどの操作が自分のものであるかを識別するのに役立ちます。 (私は別々のログファイルですべてを分けることもできましたが、もう一度私はそれらにアパートを教えるために何かが必要です)。

+2

※イントラネット上にいる場合は、あなたのアプリのWindows認証を有効にして、誰でも接続できるようにすることができます。それで 'Current.User'が動作するはずです。 – SouthShoreAK

+0

web.configでという意味ですか?私はちょうどそれを試みた。ビジュアルスタジオでのデバッグでは機能しましたが、デプロイ後では機能しませんでした。私は、デプロイすると、サーバーのWindowsユーザー(これは何もありません)を受け取ります。 – Amaranth

+0

匿名ログインで少し作業する必要があるかもしれません。私は以前これをやったことは知っていますが、私は本当に申し訳ありませんが、私は正確な詳細を覚えていません。 – SouthShoreAK

答えて

0

しばらく検索したところ、クライアントのコンピュータ名をそのように取得する方法が見つかりました。

string name = 
    System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName.Split('.')[0]; 
関連する問題