ちょっとあれこれやっていたら http://www.szktech.net/ が壊れたので(笑、またまた再構成しました。
そのため、szktech.net上で動作させているもののURLが、下記のように変わりました。
Community Server: http://www.szktech.net/community/
・Forums:http://www.szktech.net/community/forums/
・Blog:http://www.szktech.net/community/blogs/
そして、今回さらにDotNetNukeを入れてみました。
DotNetNuke:http://www.szktech.net/DotNetNuke/
インストールして使えるようにしただけで、これから何に使おうか思案中であることは言うまでもありません(^^;
RSS.NET: An open-source .NET class library for RSS feeds
某所でちょっと話題になったのでメモ。RSS feeds を扱うオープンソースのclass library だそうです。
http://blogs.users.gr.jp/haramizu/archive/2004/06/16/3185.aspx で以前紹介したものかな?これを使えば、Web ベースの RSS リーダーを作るのも簡単(かな)
Posted by はらみず | 2005年01月25日 15:29.TelligentSystems の Community Server 1.0 Beta3 が出たのでためしに入れてみようとしました。
そこで一言。
「USでしか通用しない書式をスクリプトにベタ書きしないでぇぇぇぇぇ」
何度言っても海の向こうの人には理解してもらえないようです。
というわけで、とりあえず動くようにしました。
Community Server 1.0 Beta3
http://www.szktech.net/cs/
インストールしただけでまだなーんにもしてません。
「10 Tips for Writing High-Performance Web Applications」という記事がMSDN Magazineに載ってました。著者はTelligent SystemsのRob Howard氏(以前、MSFTでASP.NETの開発に携わっていた人ですね。去年のGlobal MVP Summitでもお会いしました)。
英語で書いてあるので(当然ですが)時間はかかるけどじっくり読んでおこう。ざっくりまとめると
・ExecuteReaderを使おう
・Cacheを使おう
・IISを調整しよう
・GZIPを使おう
てなことが書かれているようです。
MYCOM BOOKS - はじめてのWebアプリケーションプログラミング
Microsoft MVP - Visual Developer for ASP/ASP.NET の堀田健也氏による、Webアプリケーション構築紹介の書籍です。
内容的には、ASP.NET開発環境である"WebMatrix"を使って、いわゆるデータベース連動のWebアプリと言うありきたりな題材ではなく、掲示板やチャットシステムといった身近な題材を扱っているので、自宅サーバーやASP.NETをホスティングしているレンタルサーバーで、データベースを使えない環境でWebアプリを作ってみたいと思っている人に向いていると思われます。
是非 :)
追記:発売日は2004年 12月 8日(水) です。
#おまえもなんかやらんかい、ってのは無しの方向で。
ASP.NET 2.0 product design changes between Beta 1 and Beta 2
ASP.NET 2.0 Beta1 から Beta2への変更点として、
・ディレクトリ名の変更
・コンパイル方法の変更
があるそうです。
あとでゆっくり読もう。。。
マイクロソフト、開発・運用コストを削減する次期ASP.NET 2.0
てな記事がEnterprise Watchに載っていましたが気になる点が。
ASP.NET2.0ではローカルからのみアクセス可能なビルトインのWebサーバーが提供されているので、これまでのようにIISやFront Page Server Extentions を用意しなくてもWebサイトの構築が可能になり、開発環境の制約が低くなったと紹介されていますが、
あれ?Cassini(ビルトインWebサーバー)ってASP.NET2.0の機能でしたっけ?
かすかな記憶では Whidbey (Visual Studio .NET 2005) やWebMatrixの一機能であって、ASP.NET 2.0というフレームワークの機能ではなかったはずなんですが。
それと、件の段落は日本語的にどうなの?という気がしないでもないです。
#ビルトインサーバーがあるという点と、ファイルシステムやFTPという環境にWebサイトを構築できるというのはぜんぜん関係ないと思うんですけど。
あと、さまざまなWeb管理ツールも、運用コストを削減するのではなくて開発と展開にかかるコストを削減するものだと思うんですけどねぇ。
ほかにも突っ込みどころが満載で、逆にASP.NET 2.0というものを誤解させてしまう記事のような気がするのですが私の杞憂ですかねぇ。
ぜひSzkさんが直してあげてください(w
こういう記事だと、微妙にちがう、ということよくありますよねぇ。
ASP.NET 2.0、最近、見れていません。
どこかのコミュニティで勉強会をしてほしいなぁ。
コンタクトなしにてすみません。。。.textを立ち上げていますが、どうしても下記エラーが出ます。是非、ご指導いただけませんでしょうか?http://www.szktech.jp/techdoc/dottextinstall.html”インストール方法”よりご指示仰ぎましたが・・・
'/dottextweb' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------
構成にエラーがあります。
説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。
パーサー エラー メッセージ: Exception in configuration section handler D:\Dottext\DottextWeb\web.config 一時クラスを生成できません (result=1)。 error CS2001: ソース ファイル 'C:\WINNT\TEMP\h881ikjf.0.cs' が見つかりませんでした。 error CS2008: 入力が指定されていません。 .
ソース エラー:
行 34:
行 35:
行 36:
行 37:
行 38: <Tracking enableAggBugs = "true" enableWebStats = "true" queueStats = "true" queueStatsCount = "5"
ソース ファイル: D:\Dottext\DottextWeb\web.config 行: 36
--------------------------------------------------------------------------------
バージョン情報: Microsoft .NET Framework バージョン:2.0.40607.42; ASP.NET Version:2.0.40607.42
.NET Framework 2.0環境にはまだ入れてないのでなんとも
いえないのですが、web.configの中に、互換性の無い部分が
あるのかもしれませんね。
誠に不躾にてすみません。!もう一度だけ見てください。FRAMEWORK2.0は削除、FW1.1で以下の通りです。おかしい箇所だけでもご指導下さい。
'/dottextweb' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------
構成にエラーがあります。
説明 : この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。
解析エラー メッセージ: 構成セクション ハンドラの例外
ソース エラー:
行 7:
行 8:
行 9:
行 10:
行 11:
ソース ファイル : D:\Dottext\DottextWeb\web.config 行 : 9
アセンブリ読み込みトレース: 以下の情報は、アセンブリ 'uioeql4b.dll' を読み込めなかった原因を調べるのに役立ちます。
=== Pre-bind state information ===
LOG: Where-ref bind. Location = C:\WINNT\TEMP\uioeql4b.dll
LOG: Appbase = file:///D:/Dottext/DottextWeb
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/WINNT/TEMP/uioeql4b.dll.
--------------------------------------------------------------------------------
バージョン情報 : Microsoft .NET Framework バージョン :1.1.4322.573; ASP.NET Version:1.1.4322.573
この手のエラーメッセージは見たこと無いですね。。。web.config の9行目がおかしいとのことですがその前後も含めて何か変更していませんか?
また、http://www.asp.net/ のフォーラムでエラーメッセージを検索すると似たような事例があるかもしれません。
#.Textのフォーラムがあります。
報告された Microsoft ASP.NET の脆弱性に関する情報
関連:
ASP.NET の正規化の問題をプログラムによって確認する方法
Web アプリケーション セキュリティ強化: 脅威とその対策
ASP.NETで、URL(Uniform Resource Locator)の適切な標準化が行われないために、攻撃者が特別な細工がされたリクエストをサーバーに送信すると、適切な資格情報なしで、セキュリティで保護されたコンテンツにアクセスできてしまうという脆弱性が発見されたそうです。
MicrosoftではASP.NETセキュリティ更新プログラムを準備中だそうですが、それが待てないという場合は、ASP.NETアプリケーションのルートに通常置かれている「Global.asax」ファイルに、「Application_BeginRequest」イベントハンドラを追加して、Web要求ごとの正規化の問題を防止することが出来ます。
そのためのサンプルコードは、上記のリンク先に掲載されています。
ASP.NET 入門 第 1 回 : アプリケーションの計画と設計
MSDNにてASP.NET入門の日本語版が提供され始めたようです。
さて、読むか(ぇ
・・・しかし、「Sample Knowledge Base Web Application」(原文) を 「サンプル知識ベースWebアプリケーション」て orz 。まあ間違ってはいないですが。
Community Server Roadmap and Vision - Community Server
私の裏サイトで使っている .Text と Forums と nGallery を提供しているtelligentsystems の rhoward の投稿によれば、現在ばらばらに提供しているこれらASP.NETベースのシステムを、"Community Server"という製品に一本化する予定だそうです。ロードマップによれば、最終的には
・ウェブログ
・フォーラム(掲示板)
・フォトギャラリー
・メーリングリストとの連携機能
・DotNetNukeとの連携
といった、WEB上のコミュニケーションを総合的にサポートするシステムに仕上げたいみたいです。
※DotNetNukeってなんだろう。CMSみたいなものかな。
個人的にはこれに加えてWSPSやGroupBoardなどとも連携できるといいと思いますがどうなんでしょうか。
最近、自宅のBフレッツが激安定しているので、現在FSで借りているこのサーバーを自宅でまかなおうかどうしようか迷っていたりします。このサーバー自体は特に難しいことをしているわけではないので、メールさえきちんと設定できれば、このCommunity Serverのリリースを機に完全自宅サーバーにしてもいいのかなぁ、と思わないでもないですが、今の状況でも非常に満足ですから、特にあせって移行することも無いのでじっくり考えないといけないでしょうね。
ともあれ、なにやら面白そうなので watch していこうかなと思います。
Telligent Systems の Community Server::Forums を設置してみました。このForumsは、ASP.NET Forums 1.0 の改良版で(内部的にはASP.NET Forums 2.0 ということらしい)、名前が示すとおり、ASP.NETベースの掲示板システムです。現バージョンの必須用件は IIS 5.0/6.0 、.NET Framework 1.1 、SQL Server 2000 / MSDE となっています。インストールしてみるとわかりますが、ちょこちょこと修正しなければ正しくインストールできません。
後で気づいたのですがインストールの手順が原水さんのところでまとめられているので、試してみたい方はそちらを参考にするとよいでしょう。日本語のリソースファイルもそちらにあります。
さて、インストールしたはいいけどどう使おうかな。(^^;
初心者の方がWebアプリケーションを作るとき、ふと困るのが
「開発環境と本番環境のマシンが違うのだけどどうしたらいいのだろう」
ということではないでしょうか。Visual Studio .NETには、FrontPageの「Web発行」に似た、『プロジェクトのコピー』という機能があり、その機能を利用すれば、開発は開発用のマシンで、実行は開発環境からほぼワンタッチでファイルをコピーするということが比較的簡単に出来ます。
では実際にどのようにするのかを見ていきましょう。
上記手順で実際に作ったのがこちらです。ちょっとフォルダの中身を見ていただくわけにはいかないのであれですが(^^;、ここには*.aspxやWeb.config、*.dllだけがコピーされ、*.csはコピーされていません。
手順としてはこれだけです。このようにすると、本番環境の方にはWebアプリケーションが作成され、*.aspxや*.dllなどはコピーされていますが、*.csなどの実際の動作には必要無いファイルはコピーされません。
開発環境と本番環境でマシンが違う場合、どのようにしてWebアプリケーションを作るかを考えている方は、Visual Studio .NETを使えば簡単に実現できますので、一度チャレンジしてみてはいかがでしょう。
注)DBを扱うWebアプリケーションの場合は他にやることがたくさんあるので注意(^^;
Web.configでidentity属性を変更するとASP.NETアプリケーションの実行アカウントがどのように変わるのか簡単に実験してみました。実験環境はWindows2000 SP4 Professional、IIS5.0、.NET Framework1.1 です。
また、アカウントを見るのにSystem.Security.Principal.WindowsIdentity.GetCurrent().Nameを使っています。
| identity属性 | 実行するアカウント |
| <identity impersonate="false" /> | MACHINENAME\ASPNET |
| <identity impersonate="true" /> | MACHINENAME\IUSR_**** |
| <identity impersonate="true" userName="MACHINENAME\User" password="password" /> | MACHINENAME\User |
というわけで、identity属性の指定の仕方によってこのようになるみたいです。で、GDNJでASP.NETからの印刷、ということで上記偽装を踏まえてテストしたところ、3番目のものはそのアカウントで既定のプリンタがサーバー上で使用できるようになっていたので何事もなく印刷されました。サンプルはMSDNライブラリの.NET FrameworkクラスライブラリリファレンスのSystem.Drawing.Printingのサンプルコードを改造して試しています。
ASP.NETの構成ファイル(Web.config)への指定のみならず、アカウントがプリンタを使用できるかどうか(スプールディレクトリも含めて)など、さまざまなことを考慮しないといけませんが、なんかWebアプリケーションからサーバーのローカルプリンタを使って印刷、という昔のホストシステムみたいなことが出来ちゃいそうですね。
偽装とかをすると どこがどう偽装されるのか とかを解説した記事が MSDN Magazine にあったような。。。
ありました。
http://msdn.microsoft.com/msdnmag/issues/01/11/security/default.aspx
日本語版の MSDN Magazine に翻訳も載ってました。
(何号だったかはわかりませんけど)
多分このあたりですね
http://www.ascii.co.jp/pb/msdn/toc/bn_no21.html
SECURITY BRIEFS
ASP.NETのセキュリティに関する問題
(November 2001 Vol.16 No.11)●Keith Brown
私の理解(というか調査)が正しければ、ASP.NETを駆動するASPNETアカウント(IIS_WPG、NETWORK SERVICE)は、
リソースへアクセスする権限をもっていません(できません)
出来るのはHDD上のファイルの読み込みくらいだと思ったほうが無難でしょう。
そして、ここでいうリソースとは以下のようなものです。
・ネットワークドライブ
・プリンタ
・サーバーコンポーネント(SQL、Exchange、etc)
ただし、このままだと使えないので、適切なアカウントに偽装することで
いろいろと実行することが可能になったということです。ASPの頃とは
アカウントの権限の考え方がより厳密になっているので注意しましょう。
#machine.configで"SYSTEM"にするなんてもってのほか。
DBには普通に繋がりますよ?
偽装はあまりしないですむならしない方がいいです。
またネットワークドライブにアクセス権限がないのではなく、ネットワーク越しアクセス全般がダメですね。
ちょっと書き方が乱暴でしたね(^^;
DBがローカルリソースである場合はつながりますね。
#まあ、つながるだけで使えるということとはまた別問題ですが。
ネットワークリソースの場合は偽装ではなくて"委任"ですね。
この部分はASPと明らかに違う部分なので注意したいポイントの一つです。
Posted by suzuki | 2004年05月28日 12:57.816150 - Visual C# .NET を使用して Web サイトにファイルをアップロードする方法
machine.configでアップロードできるファイルの容量が制限されていることにも触れたほうがいいんじゃないかな、と思ったらちゃんと触れられてましたね。リンクで。
Microsoft Active Server Pages Cookie Retrieval Issue
BugTraqに投稿されたものです。
要約すると、ASPのエンジンが特別なクッキー値を正しく取得できない場合があるので、それをつかれると、Webアプリケーションの公開したくない情報を外部にもらしてしまう恐れがあると言うことです。
詳しくはリンク先のページを見てもらうとして、私の個人的な感想では、この脆弱性(?)で機密情報を抜かれるようなWebアプリケーションの作り方そのものがどーなの?と言う気がします。
一応の回避策(この言い方もどうかな・・・)としては、IISが返すErrorメッセージをすべてカスタマイズするのが望ましいとなってますが、まあこれはそのとおりですね。デフォルトを返すのは何かとよろしくないことが多いですから。
ASP.NET Webアプリケーションを、Visual Studio.NETからデバッグしようとすると次のエラーメッセージが出ることがあります。
| プロジェクトを実行しようとしているときにエラーが発生しました:Webサーバーでデバッグを開始できません。デバッグ開始ページのURLをコンピュータ名に割り当てできません。 また、オンラインドキュメントでASP.NETとATL Serverデバッグの項を参照することも出来ます。 |
ハァ!?(  ̄Д ̄) てなもんですが、実は、Visual Studio.NET は、デバッガプロセスにNTLM認証を使います。つまり、port135~139、443、445を使うというわけです。つまりつまり、ファイアウォール等でがっちり固めたIISに対してはデバッグは出来ないというわけです。
先のメッセージの"URLをコンピュータ名に割り当てできません。"の"コンピュータ名"とは、実は『NetBIOS名』を指していたんですね。いいかげんにNetBIOS名を捨てろと小1時間(略。
やれやれ。まぁWhidbeyでは直るそうです(ていうか今すぐ直せ)。
>ファイアウォール等でがっちり固めたIISに対してはデバッグは出来ないというわけです。
んー、それで正しいと思うけど…
自分ができる事=他人ができる事なので
運用中のIISをデバッガで外から止められたらたまらんし。
That's right.
ただ、Debugが出来るユーザーというのはWindows認証によって制限されているのが普通です(実はデフォルトではAdministratorしかデバッグできないはず)。だから誰でもデバッガを起動できるということにはならないと思います(脆弱性があったら別ですが)。
もちろん、何かをミスって運用中のIISをデバッガで止められたらたまらんですが(^^;、そもそも、許可された権限をもったユーザーのみ可能という大前提があるわけですから、たとえファイアウォールでガチガチに固めていても、権限を持ったユーザーであれば、デバッグできなくてはならないというのが私の考え方です。でないと、客先のIISをデバッグせざるを得ないときにわざわざ現地まで赴かないとあかんですか?とかホスティングしてる場合はどーすんの?といった事態になるわけです。逆にいうと、リモートデバッグしたかったらNTLM認証が外部から出来てしまうような環境にしなさい、というのはなかなか受け入れがたいです(^^;
まあ、ちゃんとしたファイアウォールならあれこれして実現できるんですが、弱小企業&個人には敷居が高いです。
今はしょうがないのでWEBアプリをブラウザで開いて実際に動かしてみて、動かなかったりおかしかったりした場合は
「どこが悪いんだろー」
と悩むというのがあたりまえのようになっています。先日のMVP Summitでも[NDA]なので、今後はよくなると思いますが、現行のやつも出来れば対応して欲しいなぁーと思う今日この頃です。
うにょうにょ日記 - IConfigurationSectionHandlerを使った独自構成セクション
Webアプリケーションの構成情報を自由に定義してweb.configに登録できるから有用、と。φ(.. )
さ、この文章が理解できるように勉強勉強(;-;
Whidbey support for HtmlHead, Intro
ASP.NETだと、>head<の中身をrunat="server"属性をつけることによってプログラムから制御できるということは周知の事実ですが、どうやらそれには飽き足らず(?)、もっと簡単にしちまおうという話のようです。HtmlHeadコントロールがWhidbeyに加わり、
System.Web.HtmlHead.Header.Title
ほんまかいな。ちょっと見てみるか。
318756 - [OFF2003] [PRB] Excel と Word のコンテンツが ASP.NET から期待どおりに転送されない
ASPではcharsetの情報は自動で付与されないが、ASP.NETでは自動で付与されてしまうので、IEの累積的なセキュリティパッチを当てている環境だと、こうした問題が発生するそうです。回避するには
Response.Carset=""
という一文を加えればOKだということです。
Fredrik Normen's blog - NSQUARED2
ASP.NET Forumでえらい勢いで発言している人のBlogです。どっぷりWhidbeyに漬かっちゃってる人みたいです :)
Technical Articles: Chapter 43: Using FrontPage 2003 and Visual Studio .NET Together
FrontPage2003とVisual Studio .NET をいっしょに使う方法なのですが、うーむ。デザイナーさんと協業するのであればCodebehindは必須だし、あれこれ取り決めは必要だしかなり面倒。
WhidbeyのHTMLエディタ機能は比べ物にならないくらい強化されてるんですけど、そうなるとFrontPageの立場は?みたいな。
皆が幸せになれる仕組を考えないといけませんね。
http://blogs.msdn.com/lisawoll/archive/2004/04/15/114226.aspx
出展元はここです。FrontPageチームのLisaさんのblogからですね。もともとはここのblogでSaurabh Nanduさんが
「なしてFrontPageとVS.NETは協業できん?」
とCommentしたことが起因となっているようです。
ASP.NET Web Matrix Project 日本語版
バージョンアップ版がリリースされました。アップデート内容は以下の通り:
・テキストエディタの設定で空白文字の表示の設定を行った際に一部文字が正しく表示されない問題を修正。
・エディタ内でビューを切り替えた場合、文字化けしないように強制的に内部的にShift-JISに変換するように変更した。ただし、この変更により扱える文字がShift-JISに限られるようになった。
あら、2番目の変更点はちょっと・・・。
また、これを使う場合は以前のWebMatrixをアンインストールしてからインストールすること。
ASP.NET "Whidbey" の新しいメンバシップ機能
今晩ちょっと試してみよう。なんかうまく動かなかったんですよね>我が家の環境。
Whidbeyのインストールに失敗したのかなぁ
ASP.NET Configuration ページが開かないので断念。
(NavigateBarなんてNameSpaceは無ぇYO! と怒られる)
この間のSummitのデモでは動いてたんだけどなぁ。
http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=539121
Oh!God!
Posted by suzukiworks | 2004年04月16日 16:52.【Web.config】
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>
【login.aspx.cs】
private void OnLogin_Click(object sender, System.EventArgs e)
{
if (CustomAuthentication(UserID.Text,Password.Text))
{
FormsAuthentication.RedirectFromLoginPage (UserID.Text,false);
}
else
{
Label3.Text = "Invalid Login";
}
}
private bool CustomAuthentication (string username,string password)
{
SqlConnection conn = new SqlConnection("server=localhost;database=dbname;uid=uid;pwd=password");
try
{
conn.Open();
StringBuilder strB = new StringBuilder();
strB.Append("Select count(*) from users where username=\'");
strB.Append(username);
strB.Append("\' and cast(rtrim(password) as varbinary) = cast(\'");
strB.Append(password);
strB.Append("\' as varbinary)");
SqlCommand command = new SqlCommand(strB.ToString(),conn);
int count = (int)command.ExecuteScalar();
return(count > 0);
}
catch
{
return false;
}
finally
{
conn.Close();
}
}
他にもGlobal.asaxを使う方法もありかと。
The Community Server Beta Has Expired!
Posted by ひろりん | 2005年02月01日 09:13.って出てますけれど...