【質問】ASP.NETスレ Part4【議論】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2007/07/17(火) 23:49:46ID:pyJr9yIyPart1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html
【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/
【質問】ASP.NETスレ Part3【議論】
http://pc11.2ch.net/test/read.cgi/php/1160355849/
0872nobodyさん
2008/11/05(水) 18:43:23ID:???異なるサーバで、クエリ以外でやろうとするなら、POSTするしかないんじゃないのかな。
でもPOSTだと、異なるサーバ(ドメイン)にポストしようとすると、ブラウザが許可しないかもね。
異なるサーバ上のページ間でやりとりをしようとすると、確かに不便そうだなぁ
昔はいろいろできたけど、今はセキュリティの関係から許可されてないことも多そうだし。
0874nobodyさん
2008/11/05(水) 21:55:23ID:???クエリでみられなきゃいいのかとおもってさ。
というかDBやファイルの使用を拒否してるんじゃなくて、単純に別ドメインの、
別サーバに反映させたいから、他の方法を聞いてるんじゃないか?
クエリで見えても、中身がわからなければ問題なくて
サーバAにポストバックして、サーバAからResponse.Redirectなどで
サーバBに遷移するなら、ページaのテキストボックスをサーバAで暗号化して、
それを任意の手法でサーバBで受け取って複合化すれば、
できるっていやーできそうだけどね。
暗号強度の高い共通鍵暗号なんか利用できれば、
簡単に解読はできなさそうだし。
いや、思いつきなんだけどね。
0875nobodyさん
2008/11/05(水) 22:01:45ID:???多分そんなことは分かって書いてると思うよ…
0876871
2008/11/05(水) 22:45:32ID:???POSTする(リクエストBODYは丸見え)か
DBを使うかしかないということですね。
表面上見えなければOKなのか、DBを使うべきなのか確認してみます。
DBは頑なに拒否というか、「それだけのために」という思いからだったのですが
それしかないということであればそれで調整してみます。
やったこと無いけど、セッションでなんとかならないかな
stateserver使ってセッション外出しにしといて
両サーバのMachineKeyだったかを同じにしとけば
なんとかなるような気がしなくもない
0878871
2008/11/06(木) 23:08:56ID:???どうもありがとうございました。
>>877
調べてみたら「複数サーバーでセッションを共有できる」とありますね。
ただサーバーは既にあるものを利用する形になるので今回はちょっと無理そうですが
状況が許せばベストな方法かもしれませんね。
0879nobodyさん
2008/11/07(金) 01:24:07ID:???0880nobodyさん
2008/11/07(金) 07:56:45ID:???気休めだけど、多少は回避できるよ
http://www.microsoft.com/japan/msdn/thisweek/300x10/phase2/encrypt/cs.aspx
C# 暗号 で検索すると、いろいろ出るから試してみ
//C#で検索するのは.netを利用してという意味で、VBといれるとVB6時代もでてくるから
0881nobodyさん
2008/11/08(土) 11:36:01ID:???出てくるページにろくなものがない件
0882833
2008/11/09(日) 13:20:28ID:???できれば具体的な実装方法を解説しているサイトなど紹介して貰えるとありがたいです。
0883nobodyさん
2008/11/09(日) 19:09:41ID:???http://support.microsoft.com/kb/910440/ja
0884nobodyさん
2008/11/09(日) 21:51:15ID:???ありがとうございます。
教えていただいたページの情報を元にいろいろ検索してみたところ、以下のような記事を見つけることができました。
CodeProject: Membership and Role providers for MySQL. Free source code and programming help
http://www.codeproject.com/KB/database/mysqlmembershipprovider.aspx
CodeProject: MySQL Membership, Role, Sitemap, Personalization Provider for ASP.Net 2.0. Free source code and programming help
http://www.codeproject.com/KB/aspnet/Suite_MySQL_Provider.aspx
MySQL :: ASP.NET 2.0 Membership Provider for MySQL
http://forums.mysql.com/read.php?38,63403,63403
nolan bailey's blog: MySQL ASP.NET Membership and Role Provider
http://blog.nolanbailey.com/2008/03/08/mysql-aspnet-membership-and-role-provider/194
どうも最後の記事を見ると、MySQL Connector/Net 5.2.1 以降には標準でMySQL用の MembershipProvider が付属しているみたいですね。
ちょっといろいろ試してみたいと思います。
0885nobodyさん
2008/11/09(日) 22:36:33ID:???フォーム認証関連の機能をカスタマイズすれば、
簡単に他のDBでもできると思うんだけど、それじゃだめなんかね。
極論で言えば、認証を認めるか認めないか、TrueかFalseを返すルーチンだけ
自分でつくる(したがってどんなDBでもいい)だけでいいんだから、
まったく気にすることなく利用できると思うんだけど。
0886nobodyさん
2008/11/10(月) 03:01:16ID:???使えれば使えるにこしたことはないと思うし
0887nobodyさん
2008/11/12(水) 17:38:52ID:???リターンキーを押すと、IDとパスワードがクリアされるんですが、リターンキーを「ログイン」ボタン
をクリックしたときと同じ動作にすることはできないのでしょうか?
(ID、パスワードは登録しているものです)
DefaultButtonに設定しても駄目?
0890nobodyさん
2008/11/12(水) 21:40:18ID:???formに対して、Enterキーを押すことに対するデフォルトボタンなんだから。
というか、Returnキーって懐かしいな。
今もNEC製パソコンはReturnキーって書いてあるの?
それとも、PC-9801とか、PC-9821とか、PC8801世代の人かな?
0891nobodyさん
2008/11/12(水) 23:11:20ID:???>formに対して、Enterキーを押すことに対するデフォルトボタンなんだから。
なるほど。ちょっと見てみます。
ん?ということは、ログインコントロールをばらさなければなりませんかね?
ちなみに、学生の時に88を大枚はたいて買いました。すぐに98が出ましたが…。
0892nobodyさん
2008/11/13(木) 10:32:04ID:???Enterキーを押下時にログインボタンが押されてるか、
他のボタンが押されてることになってるような気がするんだが、
なんで消えるんだ?
Constructorで、IsPostBack判断せずにLoginコントロールの
初期化をしたりしてる気がする。
0893nobodyさん
2008/11/13(木) 13:58:42ID:???0894nobodyさん
2008/11/13(木) 14:55:44ID:???書込を見て、そういうことなのか…と思い、確認しました。
すると、登録されたユーザーの場合、
ID、パスワードを入れて、そのままEnterキーを押す
→ Page_Load が呼ばれる。
ID、パスワードを入れて、「ログイン」ボタンをクリック
→ Login1_LoggedInが呼ばれる。
という状態でした。Page_loadには何も書いていなかったので、また、まっさらな
ページが表示されたということだと…。
ただ、解決策が思い当たらない…。
とりあえず、RequiredFieldValidator使うとか
0896nobodyさん
2008/11/13(木) 20:02:18ID:???ID、パスワードいれて、Enterキーを押すと、Page_Loadが呼ばれるけど、中身は消えないよ。
Page_Loadの中でログインコントロールを初期化してるんじゃないの?
あと、EnabledViewStateをOFFにしてるとか。
つかIEだと、EnabledViewStateをfalseにしても、パスとIDは消えないね。
なんか特殊なことしてるんじゃないの?
089723
2008/11/13(木) 20:05:30ID:???<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無題のページ</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Login ID="Login1" runat="server" EnableViewState="False" OnLoggedIn="Login1_LoggedIn"></asp:Login>
</form>
</body>
</html>
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Login1_LoggedIn(object sender, EventArgs e)
{
}
}
中身はこんだけ。
いろいろコーディングしてるなら、別ページを用意して、最低限のコントロールと、
コーディングだけして試してみたら?
0898nobodyさん
2008/11/13(木) 20:43:48ID:???丁寧にすみません。
パスとIDは消えませんでした。不正確ですみませんでした。
ページがロードされても前の状態を保っていました。
コントロールをばらして、RequiredFieldValidatorで、「ID、パスワードを入力した後、ログインボタンを
クリックして下さい」といったお願いを書こうと思います。
0899nobodyさん
2008/11/13(木) 21:22:43ID:???いや、正確なパスワードを入れてボタンを押すなり、Enterキーを押せば
Login1_LoggedInのイベントが発生して、
不正確なパスワードを入れてボタンを押すなり、Enterキーを押せば、
Login1_LoginErrorのイベントが発生するら、
それでやればいいと思うんだけど違うの?
Page_Loadは再読込される度に絶対に呼ばれるわけで。
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Login1_LoggedIn(object sender, EventArgs e)
{
}
protected void Login1_LoginError(object sender, EventArgs e)
{
this.Label1.Text = this.Login1.UserName;
this.Label2.Text = this.Login1.Password;
}
protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
{
}
}
これでログインエラー時に入力されたパスワードとUserNameも取得できるわけで。
0900nobodyさん
2008/11/14(金) 00:27:39ID:???Enterキーによる任意のコントロールのSubmitは無理だよなぁ。
マスターページ使っててformタグを途中に入れたら怒られた気がする。
0901nobodyさん
2008/11/14(金) 00:39:30ID:XFofzK8rjavascript使えば可能そうだけどね
0902nobodyさん
2008/11/14(金) 08:56:18ID:???それとも、C#?
0903nobodyさん
2008/11/14(金) 15:50:58ID:???あんまり
はやっちょらん
感じだな
0904nobodyさん
2008/11/14(金) 16:32:49ID:???Page_Load
Login1_LoggedIn
Login1_LoginError
のそれぞれのイベントで、「ログイン」ボタンを押さずにそのままEnterキーを押した、
認証できた(ID、パスワードも取得できる)、認証できなかったという状態の取得が
できることはわかりました。
あとは、そのままEnterキーを押したときにどう対応すればよいということを考えれば
よいということで、メッセージを表示すると考えたのですが…。
あなたが何をしたいのかわからなくなりましたよ。
Enterキーでポストバックしないようにしたいって事?
Enterキーで入力カラムを移動したいとか?
ボタン押すのとEnterキー押すのは等価でいいような気がしますが・・・
0906nobodyさん
2008/11/14(金) 19:57:58ID:???まず前提としてPage_Loadは、認証できようが、できまいが、ログインボタンを押そうが、押すまいが
絶対にイベントが発生するので無視な。
>「ログイン」ボタンを押さずにそのままEnterキーを押した、
>認証できた(ID、パスワードも取得できる)、認証できなかったという状態の取得が
>できることはわかりました。
ログインボタンを押さず、Enterキーを押されたとき、
認証できた、できなかった状態を取得できることもわかった。
>あとは、そのままEnterキーを押したときにどう対応すればよいということを考えれば
>よいということで、メッセージを表示すると考えたのですが…。
そのままEnterキーを押した時って、それは認証できたときと、できなかった時の対応と同じじゃないの?
0907nobodyさん
2008/11/14(金) 23:25:41ID:???onsubmitイベントからキーイベント引っこ抜いて〜って感じだな。
EnterキーでのSubmitって個人的には結構重要な要素だけど、
作る側としてはformごとにhidden仕込まなくていいからホント楽だよな。
明細一行ごとにhidden仕込みまくってた頃にはもう戻れんわ。
(更新form用と削除form用とドリルダウンform用と…とか)
0908nobodyさん
2008/11/14(金) 23:43:53ID:???でも、ASP.NETだと、イベントが発生したコントロールを特定できるから、
そんなことしなくても、一つのformでも十分だと思うけど。
なんか特殊な事例とかある?
0909nobodyさん
2008/11/14(金) 23:55:17ID:???ユーザーがログイン済みか判定するにはBeginRequestイベントで毎回確認するのがセオリーなのでしょうか?
0910nobodyさん
2008/11/15(土) 00:06:25ID:???つか、ログイン関係について質問してる人は同じ人か?
だとしたら、もう教えて君に近い存在になってると思うぞ?
いちいち聞けば誰かが教えてくれるかもしれんが、
もうちょっと自分で調べて、自分で実験したほうがいいと思う。
そのほうが誰かの返答を待つより効率がいいだろうし、
自分のスキルも上達して、あなたのためになると思う。
少なくとも、ここ数十レスで書かれたログイン関係の
コントロールについては、基本さえあれば、ほんの
10分程度の時間があれば検証して実験する程度の
スキルを身につけることができる。
0911nobodyさん
2008/11/15(土) 09:31:40ID:???いや違います。
私は、ID、パスワードを入力して、ENTERキーを押したときと、「ログイン」ボタンを押した
時に同じ動きにしたかっただけなので…。
0912nobodyさん
2008/11/15(土) 09:58:32ID:???違うのか、ならすまなかったな。
こっちで実験した感じでは、ログインボタンを押した時と
Enterキーの時では動作が同じだが、何が違うんだ?
0913nobodyさん
2008/11/15(土) 11:35:28ID:???そのままEnterキーを押すと、IDはそのまま、パスワードが空になっています。
→ 認証後に移動するページに飛ばない。
Enterキーを押さずに「ログイン」ボタンを押すと、認証されて、認証後のページに飛ぶ
という状態です。
0914nobodyさん
2008/11/15(土) 11:36:32ID:???ブレークポイント仕掛けてデバッグしてる?
おのずと違いがわからないかい
0917nobodyさん
2008/11/15(土) 16:14:35ID:???入れています。
そのままEnterキーを押したとき
Login.aspx のPage_Load → ユーザーコントロールのPage_Load
→ ユーザーコントロールのImageButton_Clickを通る。
(ImageButton_Clickの中には何も書いていません)
「ログイン」ボタンを押したとき
Login.aspx のPage_Load → ユーザーコントロールのPage_Load
→ Login1_LoggedIn を通る。
といった感じでした。
ユーザーコントロールのImageButton_Clickが呼ばれることで、Login1_LoggedIn が
呼ばれないようです。
要は、そのイメージボタンをクリックしてるのね
デフォルトボタンをログインボタンにすれば解決じゃないの?
0919nobodyさん
2008/11/15(土) 17:08:56ID:???0920nobodyさん
2008/11/15(土) 17:16:11ID:???0921919
2008/11/15(土) 17:16:55ID:???ImageButtonが、Loginコントロールより前にあると、
Enter押下時にImageButtonのイベントが発生する。
逆にLoginのほうが上にあると、Loginのログインボタンが押されたことになる。
つまり上にあるほうが、Enterキー押下時のデフォルトボタンになるということらしい。
0922919
2008/11/15(土) 17:18:52ID:???<form id="form1" runat="server">
<asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton1_Click" />
<asp:Login ID="Login1" runat="server" EnableViewState="False" OnLoggedIn="Login1_LoggedIn" OnAuthenticate="Login1_Authenticate" OnLoggingIn="Login1_LoggingIn" OnLoginError="Login1_LoginError">
</asp:Login>
</form>
protected void Page_Load(object sender, EventArgs e)
this.form1.DefaultButton = "Login1$LoginButton";
protected void Login1_LoggedIn(object sender, EventArgs e)
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
e.Authenticated = true;
protected void Login1_LoginError(object sender, EventArgs e)
this.Label1.Text = this.Login1.UserName;
this.Label2.Text = this.Login1.Password;
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
これで問題なさげで、Loginのログインボタンがデフォルトボタンになるっぽいな
下のプロシージャは{}省略
0923919
2008/11/15(土) 17:20:00ID:???this.form1.DefaultButton = "Login1$LoginButton";
かな。これでLoginコントロールのボタンコントロールをデフォルトボタンとして設定できるっぽい
他に影響がなければ、これでいけると思う。
これで解決かな?
0925nobodyさん
2008/11/15(土) 17:44:23ID:???this.form1.DefaultButton = "Login1$LoginButton";
で動作しました。
私はVBでやっていたので、
Me.form1.DefaultButton = "Login1$LoginButton"
でした。
大変時間を頂いてすみませんでした。
0926nobodyさん
2008/11/15(土) 18:56:39ID:???まぁ、謝ることのほどでもないよ
よくあることだし
>>925
俺はC#でVBは話せないので、すまない。
今回のようにLoginコントロールだけでどうこうなるわけじゃなくて、
他のコントロールが絡んでることもあるから、
なるべく詳しくいろんなことを報告するようにしたほうがいいよ。
自分が気になることは他人も気にしていることだと考えて
気づいたことはすべて報告するようにしたほうがいいと思う。
↓お勧め
http://www.unixuser.org/~ueno/bugs-ja.html
0927nobodyさん
2008/11/15(土) 18:57:31ID:???○まぁ、謝るほどのことでもないよ
orz
0928nobodyさん
2008/11/15(土) 20:58:37ID:???パネルの入れて表示/非表示切り替える方法以外はどのような方法がありますか?
0929nobodyさん
2008/11/15(土) 21:18:50ID:???どういうふうに変化させたいの?
コントロールの一部だけか、
レイアウトは同じなんだけど複数のコントロールをごっそり変えたいとか、
またはページそのものを違うものにしたいのか、
コントロールは同じなんだけど、デザインテンプレートだけを変更したいとか。
0930nobodyさん
2008/11/15(土) 21:33:11ID:???ごっそりです。
書籍を特定するクエリが飛んできたら、その書籍の詳細を表示
なければ見つかりませんと表示
って具合です。
0931nobodyさん
2008/11/15(土) 21:51:30ID:???親フレームでクエリを受け取って、該当する書籍がなければ違うページを
子フレームやインラインフレームに読み込むとか。
Panelを使うにしても、UserControlで、プロパティ一つが切り替えるようにするとか。
他になんかあるのかな。マスタページとか嫌いだからその辺はわからない。
0933nobodyさん
2008/11/15(土) 23:34:41ID:???0934nobodyさん
2008/11/16(日) 05:16:43ID:???ああ、MultiViewがありましたね。久しぶりで忘れてました。これ使ってみます!!ありがとう。
0935nobodyさん
2008/11/16(日) 21:18:48ID:???http://code.google.com/p/aspnetserve/
って使ってる香具師いる?
0936nobodyさん
2008/11/16(日) 21:49:09ID:???0937age
2008/11/16(日) 22:34:02ID:gZOlu/94多人数が見るサイトを構築する際、ページのインスタンスを保持すべきではない。
という記述をhttp://www.atmarkit.co.jp/fdotnet/dotnettips/043postback/postback.html
の@ITさんで見たのですが、
ポストバックしてきたページは別インスタンスということでよろしいのでしょうか?
また保持すべきではないのは、サーバー側に負荷が掛かるから、という認識でよろしいのでしょうか?
よろしくお願いします。
0938nobodyさん
2008/11/16(日) 22:50:10ID:???そのページをちゃんと読めば、常に別インスタンスって書いてあると思うよ。
ページのインスタンスを保持するのが良くないというのは、
一度、表示に利用したインスタンスはすぐ破棄したほうがいい(使いまわわすこともないし)という
ことだと思うんだけど、ポスト後に同じインスタンスにアクセスすることなんてできるんかいな?
>また保持すべきではないのは、サーバー側に負荷が掛かるから、という認識でよろしいのでしょうか?
保持すべきでないというより、保持できないと思ってたんだけど、
違うなら他の人の指摘待ちかな・・・
0939nobodyさん
2008/11/17(月) 02:40:45ID:???保持したインスタンスをどうやって特定してアクセスするかはしらねえがw
そのページにも保持するなとは書いてないぞ
保持することは現実的じゃないと書いてある
そもそもページのインスタンスそのものを保持する必要性が理解できん
最大限でもViewstateだけ保持すれば事足りると思うんだが
0942nobodyさん
2008/11/17(月) 23:59:53ID:???http://www.moongift.jp/2008/09/aspnetserve/
結局サーバーはwindowsでないとダメなんだよね?
IISは必要ありませんって言われてもあんまりメリットが見えない。
0943nobodyさん
2008/11/18(火) 00:29:20ID:???0944nobodyさん
2008/11/18(火) 01:05:05ID:???0945nobodyさん
2008/11/18(火) 14:33:33ID:???IISだけの脆弱性を回避したいとか。
Server固有のエラーとかは発生しないものなのかね。
ASP.NETとして動いている部分が100%互換性がないと開発用にも使えないよね。
0946nobodyさん
2008/11/18(火) 17:17:24ID:???たしかFiddlerとかうまく使えないよね…
いや、IEだったらlocalhostでも使えたかな…
0947nobodyさん
2008/11/20(木) 00:38:49ID:PklGUJ5B>保持はできるんじゃね。
インスタンスはASP.NETランタイムが破棄するから保持できなだろ。
保持したいときは静的変数。
0948nobodyさん
2008/11/20(木) 10:31:15ID:???いや、だから、それはシステムが保持していないってだけだろ
お前の言うように、破棄される前に静的変数に保存しとけば保持されるはずだろ
んで、それを保持しておくことにほとんどメリットがないから
大元の@ITのページでも現実てきではないと書かれてるんじゃないかね
0949nobodyさん
2008/11/20(木) 15:54:43ID:???インスタンスの先頭アドレスのポインタを変数に保存しておくってことでしょ?
でもインスタンスが生存しているか、破棄されているかは.net次第だから、
結局、そんなもの保持してても意味ないと思うんだけど
後で使うから破棄しないでね(ハート なんてできたっけ?
0950nobodyさん
2008/11/20(木) 20:34:54ID:???別に静的変数じゃなくてもいいんだが。
インスタンスはそれが参照されていれば破棄されないから
たとえばセッション変数に保持しとけばあとから参照可能じゃね
(セッション変数にオブジェクト入れるなという話はあるんだがなw)
保持できないから意味がないというから、保持できるんじゃないかと思っただけで
できるできないに引っかかっただけだから
実際試したことないんで、保持できなかったらすまんw
0951nobodyさん
2008/11/21(金) 20:01:42ID:???そうなるとガーベジコレクタの話になるんかな
なんか不安だから静的変数も必要なくなったらnullを代入しなくちゃいけないんかなと
違うところで不安になってしまった
ま、それはともかく、確かに保持できても意味はないよね
じゃあ、なんのためのSessionやCokkie、ViewStateって話で。
>実際試したことないんで、保持できなかったらすまんw
大丈夫、保持できるかできないかに引っかかってることは理解してるからw
仮に保持できたとして、積極的に保持したほうが便利なんてことがあるのかな。
自分じゃあまり思いつかないな。
0952nobodyさん
2008/11/21(金) 22:44:33ID:???参照が残っていても使えなくなってる可能性もありそう
ポインタとか言ってる所を見ると、>>949は
単にガベージコレクションの動作を知らないだけだとは思うけど
0953nobodyさん
2008/11/23(日) 00:00:10ID:???いや、オブジェクトを変数に格納するということは、
オブジェクトのポインタを変数に格納することと同義だから、
>>949は間違ってるとは言えないと思う
IDisposeは、それが参照しているローカル変数が属するスコープから抜けた場合に
自動的に実行されるものなわけで、スタティック変数やグローバル変数として保持している限り、
ルートオブジェクトから参照できるオブジェクトとして、ガベージコレクタの収拾対象にはならないはず
0954nobodyさん
2008/11/23(日) 04:12:49ID:???IDisposeはDisposeメソッドを実装することを強要するだけで、
そのDisposeメソッドが呼び出されることはだれも保証してないと思うんだが
参照が保持されてればGCの対象にならないだけで、
IDisposeがインプリメントされているかどうかは無関係のはず
(ただし、.NETのGCは2段階になってて、正しく実装されたDisposeは
1段階目のGCを抑制することになるが、インターフェィスはメソッドの
実際の実装までは規定してないからな)
>>952はPage.Disposeを呼び出すとそのPageオブジェクトは、たとえ参照が残っていても
使用不可能になってるぞと言ってる
問題は、Page.DisposeはASP.NETが自動的に呼び出すかどうかなんだが
その記述は見つけられなかった。
なんでPage.Disposeは通常は呼ばれないと思ってるんだが、
ページ上のサーバコントロールについてはDisposeが呼び出されるってのを
見たことあるんだよなぁ...Page.Disposeも呼ばれてても不思議はない。
だれか実験してみてくれw
0955nobodyさん
2008/11/23(日) 13:53:12ID:???言葉が書き足りなかったね
>IDisposeは、それが参照しているローカル変数が属するスコープから抜けた場合に、
>(将来的にGCによって)自動的に実行される
という意味なので、IDisposeについては意見は一致してると思う。
問題は
・スタティック変数やグローバル変数として保持しているインスタンスを、
ASP.NETが破棄するかどうか(IDisposetを呼び出すかどうか)
なわけだよね。
スタティック変数やグローバル変数はGCからみてルート中のルートだから
普通は破棄されないと思うんだがw、
確かにどんな動作してるから実験してみるしかないわなw
だれか頼むw
0956nobodyさん
2008/11/23(日) 21:32:15ID:???お前の意見だと
GCはDisposeメソッドを(自動的に)呼び出す となるんだが
おれの意見は
GCはDisposeメソッドを呼び出さない だぞ
GCが呼び出すのはあくまでファイナライザで、正しく実装されていれば
ファイナライザ中でDisposeが呼び出されるであろうことが期待される。
お前のいうGCが自動的に呼び出すの意味がこれであるなら、
それは実装によるので保障されてないと言っている
Disposeを呼ぶのはあくまでそのインスタンスを生成した所有者の責任だ
いままでIDisposeって書いてたけど、ほんとはIDisposableだった
もしかして微妙に話がかみ合わないのはそのせいか?
実験したいがいまその環境がないんだよなぁ
0957nobodyさん
2008/11/23(日) 22:03:55ID:???あー、ちょっとまってくれ、こっともC++/CLI前提で話をしていたかもしれない
>C#とC++/CLIを比較した場合のリソース管理の相違点は、
>C#のusingステートメントに相当する機能が、スコープに統合されている点です。
>たとえば、ローカル変数にDisposeパターンを実装したオブジェクトを記述した場合、
>そのローカル変数が属するスコープを抜ける時に、Disposeメソッドが呼び出されます。
ガーベッジコレクタの話ともごっちゃになってるな。
すまない、ちょっと調べてみる。
0958nobodyさん
2008/11/24(月) 02:43:38ID:???今の状態ですと、ページが切り替わるのですが、これを別ウィンドウで表示することは
できるのでしょうか?
Protected Sub Bt_Print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_Print.Click
Response.ContentType = "application/pdf"
'PDFドキュメントを作成
Dim doc As Document = New Document(PageSize.A4)
PdfWriter.GetInstance(doc, Response.OutputStream)
・
・
・
doc.Close()
Response.End()
End Sub
0959nobodyさん
2008/11/24(月) 11:11:24ID:???自己レスですが、いったんファイルにして、
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2797&forum=7
の方法で解決しました。
0960nobodyさん
2008/11/25(火) 17:01:44ID:???PHPでいうところのsmartyみたいなテンプレートエンジンはまだ一切出て無いんですかね?
0961nobodyさん
2008/11/25(火) 20:03:06ID:???0962nobodyさん
2008/11/25(火) 22:46:47ID:tBm7rCDqまだ参考書に従ってサンプルのコードを打ち込んでるレベルです。
最初にWebフォームを作る際、「別のファイルにコードを書き込む」チェックボックスにチェックを入れて作ってるのに、
なぜかときどき、インラインコードになってしまうときがあります。
ページを新規作成してボタンを配置して、ダブルクリックしたらクリックイベントが.aspx.csの方に出来たのに、
いったんVisualStudioを閉じて、.slnファイルを起動して再度ボタンをダブルクリックしたら、
なぜか.aspxファイルのインラインにクリックイベントが出来てしまいました。
どういうときにこの現象が出るか、再現性がいまいちわからないのですが、
インライン←→コードビハインドが勝手に切り替わるのを防ぐにはどうしたらいいのでしょうか。
また、インライン←→コードビハインドの簡単な切り替え方がありましたら教えてください。
0963nobodyさん
2008/11/26(水) 16:51:36ID:???あとaspxファイルの
<%@ Language="C#" Inherits="MyStuff.MyClass" %>
が無くて継承元のcsが見つからずにそんな状況になるとか。
想像だけど。
0964nobodyさん
2008/11/27(木) 00:54:32ID:???を色々と記述し勉強しているのですが、IDE上で実行を行うとブラウザが起動
しJavaScriptのコード等も問題無く起動するのですが、エラー一覧に次の様
なエラーがかなり出ています。
※ソースウィンドウからデザインウィンドウに切り替えるとエラーは、0になります。
エラー 1
検証 (XHTML 1.0 Transitional): 要素 'body' に対しては、 開始タグと終了グの間でテキストを使用できません。
※<body id="idBody">
エラー 2
検証 (XHTML 1.0 Transitional): 要素 'body' に対して は、開始タグと終了グの間でテキストを使用できません。
エラー 3
検証 (XHTML 1.0 Transitional): 要素 'table' を要素 'p' の中に入れ子にすることはできません。
エラー 6
検証 (XHTML 1.0 Transitional): この名前は大文字を含んでいます。ここで使用することはできません。
エラー 8
検証 (XHTML 1.0 Transitional): Attribute 値は引用符で囲まなければなりません。
これって直さなくてはならない物なのでしょうか?エラーとはなっていますがどちらかというと警告レベルな気が
してなりません。また、ブラウザ上でJavaScriptコードは正常に動作しており実行時にブラウザの左下に警告メッセージも表示されていません。
0965nobodyさん
2008/11/27(木) 00:57:14ID:???という事は、幾らJavaScript側で入力値チェックをしても無駄な気がします。
皆さんは入力値チェックはサーバ or JavaScript どちらで行っていますか?
0966962
2008/11/27(木) 01:17:41ID:???レスありがとうございます。
解決しました。
コントロールの属性から「runat="server"」が消えていました。
使ってたコントロールはHTMLツールボックスからドラッグしたボタンで、
「runat="server"」をソースに手動で(VS2005にあった「サーバーコントロールとして実行」がなくなったので)入れてたのですが、
たぶん、ctrl+zかなんかでその属性がない状態にもどったときにダブルクリックしたらインラインになっていたのだと思います。
お騒がせしました。
両方で
0968nobodyさん
2008/11/27(木) 12:38:12ID:???XHTML 1.0 Transitionalという約束に従ってhtmlを記述しているにも関わらず、
(少なくともVSはそう思ってる)
その文法が間違っているんだから修正すべき。
曖昧な記述に対してブラウザが対応してくれてるだけで、
問題が発生するブラウザが存在しないとも限らないから。
>>965
JavaScriptでやるかやらないかは一長一短だけど、
JavaScriptではやらなくても良いけどサーバ側は絶対にやらなきゃ駄目
0969964
2008/11/27(木) 23:37:28ID:???ええっっと。両方ですか。。。
サーバ側だけばっちし固めておけば良いと思ってたんですけど。
>>968
先ずはサーバ側のチェック処理を固めて時間に余裕が出来たら
JavaScriptでもチェック処理を行おうと思います。
0970nobodyさん
2008/11/27(木) 23:54:14ID:???まずサーバの方は必須なのでがっちり固める。
チェックのたびにいちいちリクエスト投げられると使い勝手が悪いような項目はJavaScriptで即座にチェックするという感じで。
0971nobodyさん
2008/11/28(金) 00:08:25ID:???その判断は別に間違いではない。
ただ、javascriptが有効な場合にクライアント側でもチェックすることで、
ユーザビリティが向上したり、サーバの負荷を減らせることもある。
レス数が950を超えています。1000を超えると書き込みができなくなります。