【ASP.NET】URLなどの扱いあれこれ(取得など)

【1】ルートURL文字列を取得("~"チルダ相当)するには

サンプル1

Dim requestUri As Uri = New Uri(Request.Url, Request.ApplicationPath)

参考文献

http://d.hatena.ne.jp/nanamasuhoshi/20090205/1233825202

【2】"~"チルダをHTMLのタグに使用するには

 * ResolveUrl(string url)を使う

サンプル1

 <a href="<%=ResolveUrl("~/Default.aspx") %>">HOME</a>

注意事項

 * ただし、imgタグには使えないらしい。

参考文献

http://d.hatena.ne.jp/fskkoba/20101028/1288232314
http://msdn.microsoft.com/ja-jp/library/system.web.ui.control.resolveurl.aspx

サンプル2

<script src="<%= this.ResolveClientUrl("~/aaa.js") %>" type="text/javascript">
</script>

参考文献

http://csharper.blog57.fc2.com/blog-category-6.html

【3】リンク元URLの取得するには

 * 「HttpRequest.UrlReferrer プロパティ」で取得
    => HttpRequest.UrlReferrer プロパティは、クライアントが前回要求した URL に関する情報を取得

サンプル

Dim refUri As Uri = Request.UrlReferrerr

注意

 UrlRefererプロパティは、クライアントがリクエスト時にセットしてきたリクエスト・ヘッダの内容を取得しているにすぎないので、クライアント側で作為的にリクエスト・ヘッダを偽造していたら、これを防ぐ手段はないということだ

参考文献

http://msdn.microsoft.com/ja-jp/library/system.web.httprequest.urlreferrer%28v=vs.80%29.aspx
http://www.atmarkit.co.jp/fdotnet/dotnettips/180asprequrl/asprequrl.html
http://blog.livedoor.jp/my_sk/archives/105467.html

【4】URL書き換えるには

 * Global.asax内にコードを記述する

参考文献

http://blog.livedoor.jp/shui60/archives/1372094.html

【5】Webサイトのルートの物理パスを取得するには

サンプル

Dim rootPath As String = Server.MapPath("~")

参考文献

http://msdn.microsoft.com/ja-jp/library/ms178116%28v=vs.80%29.aspx
http://www.atmarkit.co.jp/fdotnet/dotnettips/804asprootpath/asprootpath.html[http://tukaenai-pg.cocolog-nifty.com/blog/aspnet20/index.html

【6】ユーザーによる途中ページへの直接アクセスを防ぐには

http://blogs.yahoo.co.jp/dk521123/26664923.html

デザイン(~/aspx)上の記述について

Namespaceのインポート

<%@ Import Namespace"【インポートしたい名前空間】" %>

ヘッダー部でのインポート

デザイン(~/aspx)側

<head>
<link href=”<%=ResolveUrl("~/【インポートしたいCSS】") %>” rel="StyleSheet" type="text/css" />
<script src="<%= ResolveUrl("~/【インポートしたいJS】") %> type="text/javascript""></script>
</head>

デザイン(~/aspx)側

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   ' JSのため
   Me.Page.Header.DataBind()
End Sub

参考資料

http://d.hatena.ne.jp/fskkoba/20101028/1288232314

関連記事

URLなどの扱いあれこれ(取得など)

http://blogs.yahoo.co.jp/dk521123/26988494.html

デザイナー(Xxxx.aspx)への記述について(@Importなど)

http://blogs.yahoo.co.jp/dk521123/28691590.html