ここから本文です

asp.net で C# を使いwebアプリを作成しています。 asp と C# を初めて使用してい...

web********さん

2012/5/3022:16:54

asp.net で C# を使いwebアプリを作成しています。
asp と C# を初めて使用していて、わからない事ばかりです。
とっても初歩的な質問で申し訳ありません。

アクセスログを作りたくてglobal.asax のApplication_OnBeginRequestに下記のようなコードを書いてます。 (一部省略してます)
objCom2 = new SqlCommand("INSERT INTO accessLogUser(ipAddress, hostName, url, loginUser, pcName) VALUES(@ipAddress, @hostName, @url, @loginUser, @pcName)", objDb);
objCom2.Parameters.AddWithValue("@ipAddress", Request.ServerVariables["REMOTE_ADDR"]);
objCom2.Parameters.AddWithValue("@hostName", System.Net.Dns.GetHostEntry(Request.ServerVariables["REMOTE_ADDR"]).HostName);
objCom2.Parameters.AddWithValue("@url", Request.Url.ToString());
objCom2.Parameters.AddWithValue("@loginUser", "LoginUser"); // ここと
objCom2.Parameters.AddWithValue("@pcName", "pcname"); // ここです。
objCom2.Exec

上のLoginUserとpcnameが取得できなくて困っています。
LoginUserはUser.Identity.Nameを使うと
”オブジェクト参照がオブジェクト インスタンスに設定されていません。”
と出て、エラーになってしまいます。
他は問題無くログを取れています。

補足追記
他のaspxファイルからはUser.Identity.Nameを使って正常に取得できます。

この質問は、男性に回答をリクエストしました。

閲覧数:
752
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

edp********さん

2012/5/3111:25:42

>”オブジェクト参照がオブジェクト インスタンスに設定されていません。”

このタイミングではユーザ認証されていないという事でしょう。基本認証サイトだったら HTTP ヘッダから取れそうに思いますが、そうでないのなら、aspx 側で処理するしかないかと推測します。 System.Web.UI.Page を継承するベースクラスを作り、そこでログ出力するようにしてはどうですか。(aspx.cs は、作ったベースクラスを継承します。)

あと pcName と hostName って何が違うのですか?

この質問は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる