日々様々なトラブルにハマっている、困ったシステム管理者の奮闘日記です。

GridView内の項目のエスケープ処理

2月 12th, 2009 管理人 Posted in ASP.NETでハマる No Comments »

再びASP.NETねた。

GridViewに表示される項目について、HTMLエンコードをかけたいのだが、例によってよくわからずハマる。

調べたところ、以下の方法でエスケープ処理が可能だった。

  1. HTMLエンコードしたい項目をTemplate Fieldに変換する。
  2. aspxファイルをソースビューに切り替えて、該当項目に対し「System.Web.HttpUtility.HtmlEncode」する。
  3. 以上

こんな感じになる。
例ではハイパーテキスト項目である「title」をHTMLエンコードしてみた。

<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("id", "xml/{0}.xml") %>'
Text='<%# System.Web.HttpUtility.HtmlEncode(Eval("title")) %>'></asp:HyperLink>
</ItemTemplate>
AddThis Social Bookmark Button

ASP.NET2.0でのGridViewでのページング処理

2月 11th, 2009 管理人 Posted in ASP.NETでハマる No Comments »

久しぶりにASP.NETをいじっています。

昔のASP.NET1.1の場合、DataGridでのページング処理には「PageIndexChanged」イベントハンドラにロジックを記述すれば良かったと記憶していたのだが、ASP.NET2.0になって同じイベントハンドラに処理を記述してもうまくいかない。
てか、「e As System.Web.UI.WebControls.GridViewPageEventArgs」の引数がイベントに無い。

どうするか困ってたら、ああ、なるほど「PageIndexChanging」に記述すれば良いのね!
こんな感じ

Private Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging

Me.GridView1.PageIndex = e.NewPageIndex
subDataBind()

End Sub

同じことでハマっている人がいたらいけないのでメモ。

AddThis Social Bookmark Button

ASP.NETでのデータベース接続文字列の記述場所

1月 27th, 2009 管理人 Posted in ASP.NETでハマる No Comments »

最近、仕事関連でASP.NET2.0をいぢってます。

システム管理者の目でいぢってて気がついたのですが、
ASP.NET2.0からデータベースの接続文字列を、Web.configの「connectionStrings」セクションに記述できるようになっているのですね。
で、MS SQL ServerなんかでWindows認証する場合以外は、接続文字列中にデータベースへの接続時のユーザ名とパスワードをweb.configファイル中に記述してしまうことになります。
具体例はこんな感じ。

<configuration>
:
<connectionStrings>
 <add name="xxsystem"
      providerName="system.data.mysqlclients"
      connectionString="Database=xxsystem;Data Source=DBサーバ; User Id=ユーザ名;Password=パスワード"
 />
</connectionStrings>

ところが、このweb.configファイルはデフォルト平文なので、Webサーバのコンソールを扱う権限のある人であれば簡単にweb.configの設定情報を参照してデータベースの接続ユーザ名とパスワードを知ることができてしまいます。
これはセキュリティ上問題です。

この問題の回避策として、Microsoftから「aspnet_regiis」というツールが提供されているので、これを使ってweb.configの重要な部分を暗号化できるそうです。
参照元:知識.com様
http://www.e-chishiki.com/jpn/articles/information_security/application_security/cryptography/encrypting_web_config

しかし、ここで問題点。

Read the rest of this entry »

AddThis Social Bookmark Button