ASPを用いて作成したファイルを
Webに公開したくないと思っているのですが
やり方がわからず困っています。
いま、アンケートを集計するようなページを
メモ帳で作っています。
そのアンケートの回答結果として
IIS上でASPを用いてAnswer.xlsというファイルを作成しています。
ファイルの中は
データ1 タブ データ2 タブ・・・・
という風になっており、直接エクセルファイルをイジっているわけではりません。
ここでURL/Answer.xlsとブラウザに入力すると、
ファイルが表示されてしまうことに困っています。
Answer.xlsはASPで動的に作成されるので
なるべく、サーバー管理者的な操作で無いほうがうれしいです。
よろしくお願いします。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
管理用のASPファイルを置いてあるフォルダーの認証方式は変更なさいましたか?
管理対象URLが http://localhost/aaa/
対象ファイル answer.txt
set oFile = GetObject("IIS://localhost/W3SVC/1/root/aaa/answer.txt")
といった具合です
IIS管理ツールで 管理用ASPファイルの置いてあるフォルダーのプロパティを表示
『ディレクトリセキュリティ』タブを選択
『匿名アクセスおよび認証コントロール』の『編集』をクリック
『匿名アクセス』のチェックをはずす
OKをクリックして ダイアログを閉じる
IISのバージョンは何ですか?
No.5
- 回答日時:
IISを再起動でもダメなら パソコンを再起動でどうでしょう
Server.MapPathで取得したパスに対して AccessReadやAccessWriteを設定するのではなく
GetObject("IIS://Localhost/W3SVC/1/Root/仮想フォルダ/answer.xls") で取得したオブジェクトに対して GetまたはPutを使うのだと思います
wwwrootの直下にAnswer.xlsがあるなら『/仮想フォルダ部分』は不要です
dim objFile
Set objFile = GetObject("IIS://localhost/W3SVC/1/root/Anser.xls")
if objFile.Get("AccessRead") = True then
objFile.Put "AccressRead", False
objFIle.SetInfo
end if
といった具合でしょう
Visual Studio などをお持ちなら付属のヘルプで
Web開発
インターネット インフォメーションサーバー 5.0
Active Server Pagesガイド
IISをプログラム管理する
辺りを参照してみてください
ごめんなさい。
いろいろ試しても、GetObjectで書き込めませんというエラーになってしまいます。
ファイルの削除は出来ました。
パスですが、
URL/aaa/Answer.xlsのとき
IIS://localhost/W3SVC/1/root/aaa/Anser.xls
でいいのでしょうか?
ちょっとめげそうです。
No.4
- 回答日時:
すみません 訂正箇所がありました
objFile.Put "AccessWrite", False
でした
それと
objFile.SetInfo
を実行しないと プロパティの変更結果が反映されませんでした m(__)m
No.3
- 回答日時:
# Ano2の実行権限偽装はしなくても出来そうです
ASPからやるとすれば IISAdminオブジェクトを使ってやることになります
IISAdminオブジェクトを使う管理サイトと 管理対象のサイトは別にします
管理サイト側は 匿名アクセスを禁止します
IISマネージャで管理サイトを開いて プロパティを表示させます
ディレクトリセキュリティタブの『匿名アクセスおよび認証コントロール』の『編集』ボタンをクリック
匿名アクセスのチェックを外します
認証済みアクセスの『統合 Windows認証』にチェックを入れておきます
# デフォルトで付いてると思います
これでOK
仮想ディレクトリタブ等で ASPアプリケーションを作成します
管理サイトの管理ページを Default.aspなどで作成します
dim objFile
Set objFile = GetObject("IIS//Localhost/W3SVC/1/Root/仮想ディレクトリ/管理対象ファイル")
if objFile.Get("AccessRead")= True then
objFile.Put "AccessRead", False
End If
' 同様に 書き込みアクセスは
' objFile.Put "WruteAccess", True
' といった具合で設定可能です
などといったスクリプトで属性の変更が出来ます
あとはこのページに HTMLコントロールなどを作って PostBackした際に上記のコードを実行するようにしてやれば良いでしょう
この管理サイトを実行するには そのホストコンピュータにローカルログオンできるユーザーでアクセスする必要があります
返信ありがとうございます。
早速やってみて
困ったことになってしまいました。
Dim anserPath anserPath = Server.MapPath( "./Anser.xls" )
Set objFile = GetObject( anserPath )
If objFile.Get("AccessRead")=True Then
objFile.put "AccessRead", False
objFile.SetInfo
End If
objFile.close
このようにやってみたところ、
ブラウザ?がフリーズしてしまいました。
結果、Anser.xlsがロック状態になってしまい、
削除もステータス変更も出来なくなってしまいました。
どうすればいいか分かりますでしょうか?
No.2
- 回答日時:
それでしたらそのサイト内の特定のフォルダにアクセス権を設定してそのフォルダーに データファイルを集めるようにしてみてはいかがでしょう
ASPからアクセス権を設定することは可能ですが実行権限を偽装しないといけないのスクリプトから実行するのは結構大変です
No.1
- 回答日時:
IISマネージャから制御したほうが簡単ですよ
IISマネージャでそのURLのフォルダを開きます
次に Answer.xlsファイルを選択して 操作 > プロパティを実行します
ここの『読み取り(R)』のチェックを外し
『書き込み(W)』のチェックをつけて OKでプロパティを閉じます
NTFSのアクセス権を適切に設定すればOKでしょう
IUSER_コンピュータ名のユーザーに対して 変更を許可します
匿名アクセスが有効ならASPが実行されるのは このIUSER_コンピュータ名 と言うユーザー名になります
この設定でブラウザで URL/Answer.xlsにアクセスしても拒否されますよ
返信ありがとうございます。
ファイルまたはフォルダに対してアクセス権限の変更による
アクセス操作という風に理解しました。
実は、Answer.xlsのようなファイルはひとつではなく、
動的に生成されているので、一つ一つにアクセス権を指定するのは
現実的ではなく、頭を悩ませております。
>なるべく、サーバー管理者的な操作で無いほうがうれしいです。
というのがそういうことを意図していたのですが
読み返してみるとわからなくて当たり前ですね。
すみませんでした。
アクセス権についての手法についての知識に乏しく、
こういった質問になってしまいました。
具体的に質問しなおすと
ファイルORフォルダのアクセス権をASPから変更する方法?
ということになるかもしれません。
おじかんありましたらお力添え
お願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Visual Basic(VBA) エクセルVBA 既存エクセルを開きその中のシートとしてCSVファイルを開く 3 2023/05/31 13:11
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- PDF PDFに精通した方に質問。JPEGファイル群を一つのPDFファイルにするときの容量変化について 6 2023/07/23 19:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2003で「オブジェクト'○○...
-
FileExitsについて
-
複数のテキストファイルをexcel...
-
バッチファイルが作成できない
-
ExcelVBA テキストファイルから...
-
HTMLタグのあるCSVファイルを利...
-
文字の頭文字順に自動移動
-
htmlとして保存されているファ...
-
フォルダ作成用バッチファイル...
-
Excel-VBA 撮影日時の取得
-
マルチモニタ環境でネットから...
-
Refreshで落ちる
-
Lubuntuでフォントをインストー...
-
コンピューターで、ファイルが...
-
エクセルVBAについて
-
VBAでファイルパスが長すぎてコ...
-
動的に生成したVSBファイルへデ...
-
グーグルドライブからコピーし...
-
OpenTextFile で書き込みできま...
-
LANDISKに新しいフォルダを追加...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access2003で「オブジェクト'○○...
-
FileExitsについて
-
ファイルやフォルダの有無、他...
-
BASP21を使わないファイルアッ...
-
ASPが動かない
-
【VB6.0】DictionaryのAddが遅い
-
delphiネットワークドライブフ...
-
複数のテキストファイルをexcel...
-
フォルダ作成用バッチファイル...
-
Excelでdatファイルを作成??
-
バッチによるショートカットの...
-
VBAでファイルパスが長すぎてコ...
-
Microsoft Access エラー 3051
-
バッチファイルが作成できない
-
batファイル処理でのテキストフ...
-
Lubuntuでフォントをインストー...
-
【Excel VBA】PDFを作成して,...
-
1フォルダに保存できるファイル...
-
テキストファイルの文字色に色...
-
ダウンロード不可PDFファイルは...
おすすめ情報