- PR -

リンク切れ、アクセス拒否のコード側での判定

投稿者投稿内容
てぃろ
常連さん
会議室デビュー日: 2007/07/01
投稿数: 23
投稿日時: 2007-07-13 13:50
てぃろです。
いつも参考にさせていただいております。
ご存知の方おられましたら教えてください。

ASP.NET C# で開発を行っております。

やりたい事: webページでURLのハイパーリンクをクリックした時、
       リンク切れや、URLが間違っているなどで、
       リンク先が存在しない場合の処理をしたい。
       できれば、権限がない場合アクセス拒否となるので、
       リンク切れの処理とは別の処理を行いたい。
       どちらのエラーが判別できない場合はかまいません。

今の状況 : ASP.NETのコントロール(リンクボタン)ではなく、
       HTMLのタグでリンクを張っています。これはどちらでもかまいません。
       リンク先が無効な場合はただ単純に「404エラー」が発生する状況です。
       IIS側で別ページに飛ばすのは可能と思われますが、
       IISの設定に依存するので、コード側で事前に「URL有効チェック」
       のようなものがあれば・・と考えています。。 

いろいろ調べてみたのですが、なかなか参考になるものが見当たりません。
ツール化されているものは見つかりますが、コードの書き方がわかりません。

ご存知の方おられましたら教えていただけないでしょうか。

よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-07-13 14:39
HTTP 404 エラーに対応した ASP.NET のリダイレクタ作成 [codezine.jp]

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
てぃろ
常連さん
会議室デビュー日: 2007/07/01
投稿数: 23
投稿日時: 2007-07-13 15:36
TO じゃんぬねっとさん:
早速のお返事ありがとうございます。

リンク先のページ参照いたしました。
ここで紹介されているというのは、

 「Webページを開く時のエラーコードによって
  ASP.NETで開発した指定したページに自動でリダイレクトができる。
  処理はそのページに記述すればよい」

という認識でよろしいでしょうか。
やはりIISの設定は必須ということですね。
コードだけでは不可能ということですね。

ただ単純に、リンクをクリックしたときにページがなかった場合、
ダイアログ(Javascriptかなにか)で簡単にメッセージを出せれば・・
と思っておりました。

教えていただいた方法でいろいろ試してみます。
どうもありがとうございました。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-07-13 17:39
引用:
やりたい事: webページでURLのハイパーリンクをクリックした時、
       リンク切れや、URLが間違っているなどで、
       リンク先が存在しない場合の処理をしたい。

この場合もApplication_BeginRequestは通るので、何らかの判断ができればと考えましたが、どうでしょうねえ。。

引用:
ただ単純に、リンクをクリックしたときにページがなかった場合、
ダイアログ(Javascriptかなにか)で簡単にメッセージを出せれば・・
と思っておりました。

自分のサイト以外も、となるとajaxとかで見に行ってステータスで判断するとか、本末転倒ですが。。
てぃろ
常連さん
会議室デビュー日: 2007/07/01
投稿数: 23
投稿日時: 2007-07-13 18:40
べるさんお返事ありがとうございます。
Application_BeginRequestですか。ちょっとしらべてみますね。

あと、前にじゃんぬねっとさんのお返事で、紹介していただいたサイトの方法は
ASP.NET2.0 なんですね・・。
私の環境はFramework1.1なので、対応していないみたいです。
ジェネリックハンドラファイル(.ashx)という概念すらないようです。
私の環境紹介の記載ミスでした・・(ToT)
申し訳ありませんでした。

もう少し調べてみます。
べるさん、じゃんぬねっとさんありがとうございました。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-07-13 19:06
ashxは1.1でも使えますよ。
VS.NETのサポートはありませんし、ドキュメントにも書いてありませんが、間違いなく使えます。

なお、リンク先として考えているのは自分が作っているサイト内だけなのでしょうか?
それならじゃんぬさんやべるさんが書いている方法が使えますが、もし外部の
サイトへのリンクも含めるのであれば、これは対応のしようがありませんです。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-07-14 00:07
発想の転換…という程大した事じゃないですが、リンクを出力する際にリンク先にリクエストして(もちろんサーバー側の話) HTTP ステータスを判断し、ステータスに応じてリンクを出力したりしなかったりすれば良いです。または Javascript でダイアログを出力したいそうですから、Javascript を出力したりすれば良いです。
_________________
囚人のジレンマな日々
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2007-07-14 03:21
引用:

囚人さんの書き込み (2007-07-14 00:07) より:
発想の転換…という程大した事じゃないですが、リンクを出力する際にリンク先にリクエストして(もちろんサーバー側の話) HTTP ステータスを判断し、ステータスに応じてリンクを出力したりしなかったりすれば良いです。または Javascript でダイアログを出力したいそうですから、Javascript を出力したりすれば良いです。


うーん、どうでしょう、これっていろんな面でなかなか難しいと思いますよ。

スキルアップ/キャリアアップ(JOB@IT)