C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: クライアントのOfficeのバージョン取得方法


(過去ログ 112 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■66591 / inTopicNo.1)  クライアントのOfficeのバージョン取得方法
  
□投稿者/ はらぺこ (5回)-(2013/05/10(Fri) 09:58:02)

分類:[ASP.NET (C#)] 

VisualStudio2005
FRAMEWORK 2.0
IIS 5.1

先日はありがとうございました。
また質問させてください。
ASP.NETから取得したデータをエクセルで出力する機能があります。
クライアント側でのOfficeのバージョンが2010を使用する場合もありえるため、2003形式・2007以降の形式 で出力できるように改修しています。

そこで、クライアント側のOfficeのバージョンを取得し、どちらで出力するかを自動で判断したいと思い、やっとバージョン取得できるようになったのですが
サーバー側のOfficeのバージョンが取得できるようになっただけでした・・・

クライアント側の情報を取得する方法はありえるのでしょうか?
ASP.NETから直接見られない場合、他に判別できる方法はありますか?
(クライアント側のPCに、何かファイル等を置いてもらうなどでも)

よろしくお願いいたします。
引用返信 編集キー/
■66592 / inTopicNo.2)  Re[1]: クライアントのOfficeのバージョン取得方法
□投稿者/ shu (304回)-(2013/05/10(Fri) 10:13:13)
No66591 (はらぺこ さん) に返信

ASP.NETでのプログラムはサーバーで実行されるのでクライアントの情報を
取得するものではありません。クライアントで取得したものをサーバー側に
送るようにしないといけません。クライアント側で実行するにはスクリプト
(VBScript,JavaScript等)を使用するとよいかと思います。
引用返信 編集キー/
■66593 / inTopicNo.3)  Re[2]: クライアントのOfficeのバージョン取得方法
□投稿者/ はらぺこ (7回)-(2013/05/10(Fri) 10:28:03)
No66592 (shu さん) に返信
> ■No66591 (はらぺこ さん) に返信
>
> ASP.NETでのプログラムはサーバーで実行されるのでクライアントの情報を
> 取得するものではありません。クライアントで取得したものをサーバー側に
> 送るようにしないといけません。クライアント側で実行するにはスクリプト
> (VBScript,JavaScript等)を使用するとよいかと思います。

お返事ありがとうございます。
もう少し詳細に教えていただけますでしょうか?
スクリプトとは、どこに書くのでしょうか?
aspxやcsファイルなどと一緒にコードを追加するのでしょうか?
ASP.NETとは別に、何か作成するのでしょうか?

スクリプトを使用すれば、ユーザーが意識せずに取得できるのですか?
(Officeのバージョンをオプションボタンで選択してもらうという方法もあるかとも思いましたが、
PCに不慣れなユーザーさんですとOfficeのバージョンなど気にしていない場合、間違った方を選択する可能性もあるかとも思いまして)
引用返信 編集キー/
■66594 / inTopicNo.4)  Re[3]: クライアントのOfficeのバージョン取得方法
□投稿者/ 774RR (85回)-(2013/05/10(Fri) 10:50:58)
まず Web システムで「できること」(セキュリティ的に)「やってはいけないこと」を勉強してほしい。
・可能なことであっても、やっちゃダメ
ということはいくつもある。

Web サーバ側が Web クライアント側の情報を積極的に取得しにいくことは「できないべき」「やっちゃダメ」
もし(ユーザーの同意なしに)できたら、それは Web ブラウザの脆弱性であって、
直ちに脆弱性修正 Update が入るような内容だ。

今やりたいと書いてある内容はまさにこの [Web サーバが Web クライアントの情報を取得する] であって
原理的に「してはならない」「できない」と考えるべきだ。

何が何でもどうしても絶対にサーバがクライアントの情報を *自動で* 取得したいのであれば
ユーザーの同意の下に ActiveX コントロールをインストールしてもらうとかすれば可能。
(Windows Update は ActiveX コントロールの機能を使ってクライアント→サーバに情報を送っている)
# 俺ならそんな ActiveX コントロールをインストールすることには **絶対に同意しない** けど。

「勝手に取得」するのはセキュリティ的に NG なので
> Officeのバージョンをオプションボタンで選択してもらうという方法
がよいと思う。

間違えたらそりゃユーザの責任。
引用返信 編集キー/
■66595 / inTopicNo.5)  Re[4]: クライアントのOfficeのバージョン取得方法
□投稿者/ はらぺこ (8回)-(2013/05/10(Fri) 11:18:17)
No66594 (774RR さん) に返信
> まず Web システムで「できること」(セキュリティ的に)「やってはいけないこと」を勉強してほしい。
ご回答ありがとうございます。
今週からASP.NETを初めてやることになり、まったく基礎もわかっておりませんでした。
サーバー側からクライアントの情報を取得できないということに、今朝になってやっと気がつきました。
(丸2日かけて取得できたものが、サーバーの情報でした・・・)


> 「勝手に取得」するのはセキュリティ的に NG なので
>>Officeのバージョンをオプションボタンで選択してもらうという方法
> がよいと思う。
>
> 間違えたらそりゃユーザの責任。

時間をかけられない仕事で、私も一番最初はどの形式でダウンロードするかを選択するドロップダウンの中に、
2003形式/2010形式の選択肢を追加しようと思ったのですが、それを自動で判断できるのかな?
とやってみたのですが、やはりできません(やってないけない)ね。

その旨を、ユーザーさん側に伝えていただこうかと思います。
(ここ数日調べた結果、ASP.NETから直接Excel出力をするにはサードパーティの製品を利用するのが良いみたいですが、お金をかけられないらしく、
私個人としては、csv出力→エクセルのマクロをクライアントPC側に入れておき、整形して表示するのがいいのでは?と思っていますが・・・)
上司と相談してみたいと思います。

ありがとうございました。
引用返信 編集キー/
■66597 / inTopicNo.6)  Re[5]: クライアントのOfficeのバージョン取得方法
□投稿者/ はらぺこ (9回)-(2013/05/10(Fri) 11:47:58)
ドロップダウンに追加することになりました。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -