【質問】ASP.NETスレ Part3【議論】at PHP
【質問】ASP.NETスレ Part3【議論】 - 暇つぶし2ch516:nobodyさん
07/03/31 21:36:11
Loginコントロールでログイン画面を作っています。
入力されたパスワードをサーバーに送信するとき
暗号化したいのですが、SSLしか方法はないですか?
たとえば、Javascriptで暗号化してもいいものなのでしょうか?
javascriptはコードが見えてしまうので…。
達人の皆様、どうかご教授くださいm(__)m

517:nobodyさん
07/03/31 22:40:54 FprosiQM
gridviewとObjectDataSourceをバインドした時のパラメータ周りの落とし穴について

1.GridViewの列の設定でvisibleがfalseになっている

2.original_変数名という余計な変数が渡されるために関数が見つからないエラー

ObjectDataSource.ConflictDetectionプロパティをOverwriteChangesにセットすれば
いいはずが、ObjectDataSource.OldValuesParameterFormatString の「original_{0}」
を「{0}」にする。さらにすべて消して一度ビルドしてから「{0}」にすると治ったり。

URLリンク(geekswithblogs.net)

3.あとから追加したプロパティやフィールドの値だけがObjectDataSourceの各コマンド
オブジェクトに指定したデータオブジェクトに渡されずnothingか0になっている。
他の引数は正常。

1と2を乗り越えたらこんどは3でした。
GridViewをデザインしながらクラッシュアンドビルドでストアド書き直したりして
ObjectDataSourceやデータオブジェクトをいじっていると、どうもコードビルダーや
ウィザードあたりに古い設定が残ったままになってるっぽいですね。

さて、キャッシュ消して再起動してみます。
3について経験のある方、解決方法を知っている方、キャッシュ消してもダメだったら
どうか情報をお願いします。

518:nobodyさん
07/03/31 22:51:16
>>516
ハッシュ関数を使えば、使ってるハッシュ関数と暗号化されたデータがわかっても
元の値はわからない・・・と教えられました。
最近は必ずしもそうでもないでようですから使う関数は選ぶのがよいようです。
URLリンク(blog.ohgaki.net)

もっとも、そのsha512を使おうと元のパスワードが簡単だと、sha512で自動生成した
辞書でマッチしてしまうのでNGですね。2chのトリップとおんなじ。

519:nobodyさん
07/03/31 23:01:40
>>517
ダメ、でした。orz

さらにDeleteコマンドにも設定した覚えのない引数が余分に渡されています。
どうもインデックスキーやソートキーに指定されるフィールドが
余分になったり渡せなかったりしている感じです。

とりあえず泣きながら寝ます。

520:nobodyさん
07/04/01 11:27:14
>>517
解決しました。

GridViewのプロパティ
DataKeyNameに設定されたフィールドは
GridViewのvisibleがFalseでも、
それどころかフィールド列が追加されてなくても、
コマンドフィールドとして追加されたコマンドボタン(削除・編集更新キャンセル)では、
強制的に引数として追加されてしまうようですね。
初歩的な仕様だったかも知れないです。

また、ObjectDataSourceのコマンドパラメータにDataKeyNameに登録されたフィールドで
データが取得できない不具合に見舞われることがあります。

対策としてはコマンドパラメータをすべて削除、DataKeyNameに正しいキーフィールドだけ
設定、あらためてコマンドパラメータを正しく設定。で、治りました。

これはGridViewとObjectDataSourceを追加削除フィールドの変更など繰返していると
発生するようです。

521:nobodyさん
07/04/01 19:42:23
>>518
ありがとうございます。

基本的にはSSLだと思うのですが、
SSLに頼らないでできないものかと思いまして。

522:nobodyさん
07/04/02 00:41:59
>>521
ただハッシュ関数だと復号できないですからね。
受け側もハッシュコードを保存していてそれで比較しますよね。
パスワードの意味はわからないけど、ハッシュ値をそのまま盗まれ
てPOSTされたらログインできなくはないです。
それなりのツールがあれば。
なので、やっぱり万全を期すならSSLが正解でしょう。
ブログのログイン程度ならハッシュで十分だと思うし。
SSL使ってませんよね。

523:nobodyさん
07/04/03 19:57:42 XOrq89tB
VS2005とアトラスで作ったサイトを現行AJAXで動かすには
どのように変更すればよいでしょうか?

524:nobodyさん
07/04/03 23:01:28
現行AJAXって初めてきいた

525:nobodyさん
07/04/05 20:39:34 pMCpj/nq
.net framework 2.0を停止して framework 1.1を有効にするにはどうすればいいでしょうか?
急にframework1.1環境のサイトを造らなければならなくなりました。
よろしくお願いします。

526:nobodyさん
07/04/05 21:02:13
両方の環境が入っていれば、1.1用アプリは1.1で動くが・・・

527:nobodyさん
07/04/05 21:50:24 pMCpj/nq
てゆうか、2.0が入ってれば2.0のほうが優先されるけど
1.1しか入ってないサーバで動くサイトを作りたいんだが

528:nobodyさん
07/04/05 22:23:57
VS2005で1.1用サイトを作りたいってことなら無理

529:nobodyさん
07/04/05 22:36:59
既に1.1環境用のフリーソフトって廃止になったんだっけ?
ウェブマトリクスとかそんな名前のやつ。
もし急場凌ぎでも1.1用サイトを作成しなければならないなら使えると思うが。

530:nobodyさん
07/04/05 22:46:01
2.0上でpdfファイルを吐けるサーバーコントロールの扱いやすいのってありますか?
ページを直接プリントする代わりにpdfを吐いて、そのファイルをブラウザで開いて印刷、
みたいな用途に使いたいのですが。


531:nobodyさん
07/04/06 00:25:08
>>527
情報を小出しにすんな
URLリンク(msdn2.microsoft.com)(VS.80).aspx

>>530
CrystalReportかActiveReportがいいんじゃね

532:nobodyさん
07/04/07 22:56:30 rFvkM9fc
コンフィグ項目がかなり多いアプリを作っていて、カスタムセクションハンドラを実装して設定を
ハンドリングしているのですが、余計な項目がWeb.configに記入されてしまい困っています。
こういう場合、お作法的にどのような方法をとればよいでしょうか?
それと、別の.NETプログラムからWeb.configの値をプログラム上からプロパティのような形で変更することは可能でしょうか?

システム構成によって、使用不可能なセクションをまったく表示しないようにしたいのですが・・

533:nobodyさん
07/04/08 03:34:00 EVMLEL7f
ASP.NETのWEBフォームで、明示的にJavaScriptを使用しない方法ってありますか?
あったらご教授願います。
よろしくおねがいします。

534:nobodyさん
07/04/08 10:55:27 QKrXdLid
URLリンク(www.friendlysw.com)
ここのサイトでこのような記述があったので、アトラスで作ったサイトをAJAX1.0環境で動かすため
下記3つをインストールしましたが、atlasのところでエラーになりました。
インストール後の設定はどの様にすればよいでしょうか?
よろしくお願いします。

ASP.NET AJAX v1.0 RTM(製品版)がリリースされまし た!
ASP.NET 2.0 "AJAX" v1.0 RTMがリリースされました。
RTM版では"Atlas CTP"のすべてのサーバーコントロールがサポートされていません。
Atlas CTPと同等機能が必要なときはAJAX January CTPもインストールします。
同様に、"Atlas Control Toolkit"の機能が必要なときは AJAX Control Toolkitをインストールします。

535:nobodyさん
07/04/08 11:32:56
ボタンコントロールのIDには、日本語は使えないの?
(´・ω・`)

536:nobodyさん
07/04/08 12:18:53
プログラムで日本語って。

537:nobodyさん
07/04/10 14:54:56
ASP.NETを使い、Accessらデータを引っ張ってくる練習用プログラムを組んでいるんですが、
データロード中に、「検索中です」等のGIFアニメを表示することはできるでしょうか?

ボタンを押したらImageコントロールのVisibleをtrueにして、受信が終わったら
trueにする、という方法で実装できないか、と考えているんですが、そのタイミングが
見つかりません。。。

538:nobodyさん
07/04/10 17:56:02
クライアント/サーバの区別がつかないゆとり世代がもう迫って来てるんだな・・・

539:nobodyさん
07/04/11 00:06:00
>537
JavaScriptでImageを表示して、PostBackしたら消しせば。


540:nobodyさん
07/04/11 11:09:27
>>534
RTM CTP Toolkit、全部AJAXをインストールして、Atlasはインストしちゃいけないのでは?

>>535


>>537
以下は可能かどうかわからんけど、アイデアとして。

aspはデフォでhtmlを全部作成してから一気にブラウザに送信させるんだけど、
htmlを作成(レンダリング)するたびにブラウザに送信するように変更できたはず。

そう設定して画面上部に画像を表示しておいてから、accessデータの表示や、
重い処理を行わせるようにする。
んで、JavaScriptのbodyタグのOnLoadイベント発生時に、
表示している画像を消すということをすれば、擬似的に可能かもしれん。

まぁ、一番簡単な方法としては、AJAXのUpdateProgressを使うことじゃないかと思う。

541:nobodyさん
07/04/11 20:05:13 ofhJt7wg
Webconfigに
<globalization requestEncoding="shift_jis" responseEncoding="shift_jis" />
を追加すると確かにリクエスト・レスポンスともシフトジスになるけど
これだけWebconfigのあるフォルダ内のすべてのaspxが影響をうけてしまう
同一フォルダ内のある特定のページだけをシフトジスにする方法はないでつか?

542:nobodyさん
07/04/11 20:21:20
>>541
その画面のpageディレクティブでCodePageかResponseEncodingあたりの設定をしてみたらどうかね
おれはやったことないが

543:640
07/04/12 17:33:27 +yX9qbQy
GridViewにユーザーコントロールを埋め込みたいんですが
データバインドの方法がいまいちわかりません。

例えばユーザーコントロールにPublic Propertyを宣言して
ここにデータをバインド、PreRenderイベントでユーザー
コントロール内を動的に生成したいのですが
まずGridViewのフィールドのデータバインドを設定する
ウィザード?にユーザーコントロールのPropertyが
表示されません。

まだGridViewへのデータバインドは解決してない
(テーブルがまだ決まってない)のですが、それが
原因でしょうか?

なるべく歩きやすい道を教えてくださいお願いします。

544:nobodyさん
07/04/12 17:47:42
>>543
GridViewは使わないので外してたらすまん。

・DataBndするデータがネストされた子データ
デザイナでユーザコントロールに
DataSource='<%# thisGetChildData(Container.DataItem)%>'みたいに記述して、
protected rows[] GetChildData(Object dataItem)のメソッド内で
DataItemからDataRowを取得して、GetChildRowでRow[]を返せばよろし

・まったく関係ないデータ
ユーザコントロール内でデータを取得してバインドしちゃえば?

というか素直にRepeaterを使った方がいい気がする。



545:nobodyさん
07/04/12 22:15:58
>>544
ありがとうございます。まさにネストされた子データを表示したかったんです。

Repeaterを使うべきかなーとは思っていたんですが、2005は使い慣れてなくて
便利な機能が増えてるので知らないで苦労したら損と思い、スマートタグに
表示されるデータバインドで解決しようとよけいな苦労をしてしまいました。
おかげさまですっきりしました。

546:nobodyさん
07/04/13 01:24:33 F/O/biBk
511のサイトがわかりにくいんだが、
もっと簡単に説明してるページとかない?

547:nobodyさん
07/04/13 14:44:57
>>546
URLリンク(japan.internet.com)

548:nobodyさん
07/04/13 15:24:06
xmlDocumentクラスのばーやばーや
xmlが分からないと使えないなんて面倒くさいんだよ!!
…もうだめぽ…

549:nobodyさん
07/04/13 19:18:02
ASP.NET 2.0 VIsualStudio2005 C#でWebuserControlを作ってるんだが、
イベント作成してもイベントインスペクタ(?)に作ったイベントが表示されない(´Д⊂グスン

いちおうclass内でpublic event EventHandler PageLoadedと定義してるんだけどうまくいかん。
ちなみにWindowsFormでユーザコントロール作るとちゃんと表示されるんだけど、
なんでWebユーザコントロールだとだめなんだろう・・。

誰かしってる人がいたら教えてください。・゚・(ノД`)・゚・。 うえええん

550:nobodyさん
07/04/14 11:13:15 gbSM0vt5
VS2003って使い勝手悪いな・・・
2005使いたいけど仕事では2003じゃないと駄目なんだ・・・
オワタ・・・

551:nobodyさん
07/04/14 14:41:22
弘法筆を選ばず

552:nobodyさん
07/04/14 14:46:25
>>551
俺が悪いって事か・・・orz

553:nobodyさん
07/04/14 15:47:59
>550
Vista対応を名目に2005に移行を促すのも手だと思うよ。
Vista上で1.1でもだいたいはそのまま動くからそれほど強く言えないけど。

554:nobodyさん
07/04/14 16:29:19
新卒が同じようなこと言ってたな
まだ2003使ってるんですか?って。

555:nobodyさん
07/04/14 17:22:34 bTaKBGMC
2003も出た当時はアレだったんだが
2005と比べるとインテリセンスが微妙だしクリックワンコもついてないし
でも2003ならSp2で1.1入れてるやつ多いだろうから配布のときらくだ

556:nobodyさん
07/04/14 17:24:19 bTaKBGMC
>>547
とんくす。
スンゲーわかりやすい

557:nobodyさん
07/04/14 17:46:52
545です。
再び困りました。

型指定付きのDataSetにストアドの結果2つを追加してリレーションシップを設定しました。
で、ネストしたRepeaterに
<asp:Repeater ID="Repeater2" runat="server" datasource='<%# Ctype(Container.Dataitem,DataRowView).CreateChildView("UserPageURLs_UserPageLinkList")%>'>
としてコードビハインドで

Dim ds As New DSUserPages
Dim ta As New DSUserPagesTableAdapters.UserPageURLsTableAdapter
Dim dt As New DSUserPages.UserPageURLsDataTable
ta.Fill(dt, Session("UID"), CType("9999/12/31", DateTime))
ds.Tables.Add(dt)
Repeater1.DataSource = dt
Repeater1.DataBind()
Dim dt2 As New DSUserPages.UserPageLinkListDataTable
Dim ta2 As New DSUserPagesTableAdapters.UserPageLinkListTableAdapter
ta2.Fill(dt2, Session("UID"))
ds.Tables.Add(dt2)

こんなことやってますが、リレーションシップがこの DataView がポイントするテーブルの親になっていません
というエラーが出ます。
ネスト部分を消すとRepeater1は正常にデータを表示できます。
リレーションやキーの設定は間違ってないと思うのですが、どういうことでしょうか?
こんなエラーはよっぽどの間抜けらしくヘルプでも項目が見つからないのです。

558:nobodyさん
07/04/14 18:17:50
>>557
追記。

ここでもエラーが出てました。
>ta2.Fill(dt2, Session("UID"))
追加しようとしたテーブルがインデックス違反をしているそうです。
これが原因かもしれません。

559:344
07/04/14 19:34:32
>>557
544です。
VisualStudioで、型指定付きのDataSetのxsdを作成してるのかな?
んで、そのデザイナ画面上でリレーショナルを設定しているということかな?

なら、そのDataTableの使い方がおかしい。
DataSetのインスタンスを生成した時点で、そのメンバであるDataTableも
作成されているので、別途DataTableのインスタンスを生成して、データセットに
addしなくてもいいはず。

必要な宣言は、
DSUserPages ds = new DSUserPages();
DSUserPagesTableAfapters.UserPaggeURLsTableAdapter dt = new .....
DSUserPagesTableAdapters.UserPageLinkListTableAdapter ta2 = new ....
だけ。

DataSetに取得したデータを入れるには
dt.fill(ds.UserPageURLsDataTable)
dt2.fill(ds.UserPageLinkListDataTable)
でok。

別途DataTableを作ってAddしてるのがまずおかしいので、そこから
直してみたほうがいいかもしれない。

それから、コレは好みで、今回のエラーとは関係ないけど、
リレーショナルを設定してるDataSetの場合、まず必要なDataTableを
すべてFillしてからRepeaterとかにBindしたほうがいい。
すべてFillする前に何らかの処理をしようとすると外部キー制約とかで
不注意にエラーになることがあるので、まず完全にDataSetを作ってから
Bindするなり操作する癖をつけたほうがいいよ。


560:nobodyさん
07/04/15 00:33:57
わたしもそう思ったんですが
Dim ds As New DSUserPages
Dim ta As New DSUserPagesTableAdapters.UserPageURLsTableAdapter
      (ここでパラメータの処理)
ta.Fill(ds.UserPageURLsDataTable)
ところがここで「ds.UserPageURLsDataTableは型です。式として使用することはできません。」
と言われてしまうんですね。なので型指定付きのxsdはスキーマ情報しか持ってないのか
と思ってインスタンスのDataTableをAddしてたんです。
するとコンパイラは通るのですが、上記エラーが出るんです。

DSUserPages.Designer.vbの中を確認すると
Private Sub InitClass()
・・・
Me.tableUserPageURLs = New UserPageURLsDataTable
MyBase.Tables.Add(Me.tableUserPageURLs)
Me.tableUserPageLinkList = New UserPageLinkListDataTable
MyBase.Tables.Add(Me.tableUserPageLinkList)
Me.relationUserPageURLs_UserPageLinkList = New System.Data.DataRelation _
("UserPageURLs_UserPageLinkList", New System.Data.DataColumn() _
{Me.tableUserPageURLs.UserIdColumn, Me.tableUserPageURLs.URLIDColumn}, _
New System.Data.DataColumn() {Me.tableUserPageLinkList.UserIdColumn, Me.tableUserPageLinkList.URLIDColumn}, false)
Me.Relations.Add(Me.relationUserPageURLs_UserPageLinkList)
End Sub
となっており、仰るとおりにテーブルのインスタンスを作成してるのです。

もうわけがわかりません。w


561:nobodyさん
07/04/15 00:40:21
なんでVBばっかりなんだ?
C#でやってるやつはいないの?

562:nobodyさん
07/04/15 03:25:33
ノシ
確かに検索で出てくるページもVBが多いよね
お陰でVBも読むことは出来るようになってきたw

563:nobodyさん
07/04/15 11:49:38
>>560
追記。
URLリンク(www.microsoft.com)
Public Function GetDepartments()As DsAdv
Dim ds As New DsAdv()
Dim adapter As New DsAdvTableAdapters.DepartmentTableAdapter()
adapter.Fill(ds.Department)
Return ds
End Function

やはりMS様もこれでいいと仰ってます。
DataSetのテーブルかなんかの設定で間違ってるのかなぁ?

564:nobodyさん
07/04/15 12:41:58
>>560
自己レスです。解決しました。
ta.Fill(ds.UserPageURLs,パラメータ,パラメータ)
でコンパイラが通りました。
UserPageURLsがテーブル名でした。
UserPageURLsDataTableはテーブルの型を定義するプロパティだったんですね。orz
オートコンプリートに表示される候補のDataTableという名前で完全に勘違いしてしまいました。

565:nobodyさん
07/04/15 13:18:08
え・・・まさかヘルプも読まないで質問・・・

566:nobodyさん
07/04/15 17:11:09
>>561
俺もC#
VBも書けるけど、なぜかC#で書いてるな。


567:nobodyさん
07/04/16 14:01:35 AFy90HQV
VS2005,C#でSQL2000から2個のテーブルをデータセットに読み込んで
そのテーブルを比較して整合性を取りたいと考えています。
テーブルの内容はAテーブルには日付フィールドと仕事の予定フィールド
Bテーブルには日付フィールドと休日の予定フィールドが入っています。
(A・Bの日付が被る事はありません)
このABテーブルをAテーブルに纏めたいのです。
Bテーブルは終業時、同様の処理をしてバックアップ代わりにします。
普通に考えてBテーブルの全てのROWの日付でAテーブルをセレクトし
てBテーブルに存在しなければROWを追加してやれば良さそうに思うのですが
頻繁に行う事が予想されるので出来るだけ不可の少ない処理で
済ませたいのですが妙案はないでしょうか?

568:nobodyさん
07/04/16 18:58:56 5T51gVIn
漏れもVB
コード変換ソフトとかあるし
VBでもC#でも問題ないんだが

569:nobodyさん
07/04/16 20:49:06 68o6OWMk
>>568
c#で書いたのをVBに変換するのってあるでしょうか?

570:nobodyさん
07/04/16 22:40:18
>>569
C#VB 変換 でググれ
基本だろ

571:nobodyさん
07/04/16 22:48:59
J#使う人って稀?

572:nobodyさん
07/04/16 22:52:02
>>567
AとBの日付が絶対にかぶらないならSelectしたBをそのまま
Insertすればいいんでないの?
も負荷を小さくするならストアドをかな。

もしくはAとBをUnionしたものをビューに登録。
さらにAテーブルをRIGHT OUTER JOINして、追加したフィールドが
nullのものだけをWHEREで切り取る。
そうすればAになくてBにあるものだけが抽出できる。

つかそのままAとBをunionしたビューをそのまま使い続けて、
新しいテーブルに、そのビューの内容をコピーしたほうが
簡単な気がする。

573:nobodyさん
07/04/17 19:45:43 OYnOoGtS
>>571
稀だろ
つか使ってる奴みたことねぇ
J#つかうならJavaのほうがいいような気がしなくもない

574:nobodyさん
07/04/17 22:11:02
Visual Web Developer 2005 Express Edition って
M$のサイトからダウンロードできるのと店で売ってるのと
何が違うんでしょうか??

575:344
07/04/17 22:22:37
>>574
本当は期間限定での無償ダウンロードで、その名残。
違いはオリジナルのマニュアルが付くところ。

576:574
07/04/17 23:14:46
>>575
ありがとです。
ってことは、機能的に制限があるわけじゃないんですね。。。

(´ε`;)ウーン…VS2003使いとしては微妙だなぁ。。。

577:nobodyさん
07/04/17 23:17:13
VS2003とか使いづらくて使う気になれん
特にVS2005に慣れたら尚更

578:344
07/04/17 23:31:00
>>576
VWDに関しては、でかいことするんでなければ、
普通に業務用にも使えると思うけどなー。

579:574
07/04/17 23:51:38
>>577
そうなんですよ、、VB6からの乗換えでせっかく慣れてきたのにまたかよ('A`)ノ
って感じですわorz...
M$には、中小企業で開発環境が変わることの大変さを知って欲しいですわ。。

>>578
Webの案件は初めてでVS2003で試行錯誤して、「うひゃっ!なんか出来ちゃったwwwww」
って思ったんだけど、、、、ASP.NET 2.0 ( ゚Д゚)イッテヨシ!!
また試行錯誤してみますorz......

580:nobodyさん
07/04/18 06:09:51 +avfGZDm
VS2005でASP.NET Webサイトを含むソリューションでリファクタ機能やすべての参照の検索など使用すると
毎回aspxなどのコンパイル処理みたいなのが走って、すごい時間がかかるんですが
早くする設定などはあるのでしょうか?

581:nobodyさん
07/04/18 14:11:23
>>580
リファクタやなんやらは、すべてのファイルをgrepして調べてるんだから、
すごい時間がかかるのは当たり前。
ファイルの参照設定をちゃんとやったりして可視性を見直すしかないと思う。

582:nobodyさん
07/04/18 23:14:27 +avfGZDm
レスサンクスです。
通常のWindowsアプリケーションとかだとあんまり時間がかからなかったため
何か設定でもあるのか、自分の環境だけなのか知りたくて質問しました。
今のところ、通常のgrepのほうが断然早いのでノイズが入ってしまうのを覚悟で手動で検索しています。

583:nobodyさん
07/04/19 11:10:59
DROPDOWNLISTのLISTITEMの文字列に文字参照で入ってきたとき、そのまま出ちゃうんだけど
(&#hearts;とか)ちゃんとハートマークにして表示って出来ませんか?

584:344
07/04/19 16:23:20
CustomWebControlを作ればいいよ
DropDownListはRenderContentsメソッド内でデータをhtmlencodeして出力しているらしい。
だからRenderContentsを↓のようにOverrideしてhtmlencodeをはずしてあげればいいはず。
public class NonHtmlEncodedDropDownList : System.Web.UI.WebControls.DropDownListを定義して
protected override void RenderContents(HtmlTextWriter output)
{
 int count = Items.Count;ListItem item;bool selected = false;
 for (int i = 0; i < count; i++)
 {
  item = Items[i];
  output.WriteBeginTag("option");
  if (item.Selected)
  {
   output.WriteAttribute("selected", "selected", false);
   selected = true;
  }
  output.WriteAttribute("value", item.Value, true);
  output.Write(">");
  string text = item.Text; ←ここで本当はhtmlencodeされているハズ
  output.Write(text);
  output.WriteEndTag("option");
  output.WriteLine();
 }
 output.Write(Text);
}
this.NonHtmlEncodedDropDownList1_1.Items.Add(new ListItem("♥", "1"))
これでハートが表示されてる。バグってたらスマソ。

585:nobodyさん
07/04/19 17:04:24
>>584
ありがとう、俺VBしかわからないんだけどなんとなくわかったよ!
HtmlTextWriterがなにやってるかを探してencodeしてる部分だけ差し替えればいいんだよね?

586:344
07/04/19 18:02:09
>>585
HtmlTextWriterは単にタグを作成するのに利用してるだけなので、
それそのものを調べても意味がないかも。

実際の(HtmlEncodeして表示している)RenderContentsメソッドを隠蔽して
別途HtmlEncodeしない仕様のメソッドを定義して利用させるってこと。

そのためにDropDownListの継承classを作成して、RenderContentsメソッドを
overrideするメソッドを作る。

ただし、こうするとタグが自由に利用できてしまうので、
使用可能な特殊コードのみHtmlEncodeを通さないようにして、
それ以外は通常通りHtmlEncodeを通すようにしたほうがいいかもね。


587:nobodyさん
07/04/19 18:41:04
>>586
丁寧にありがとう!

>そのためにDropDownListの継承classを作成して、RenderContentsメソッドを
>overrideするメソッドを作る。

これをやってみたんだけど「その型 (test.NonHtmlEncodedDropDownList)はコントロール (System.Web.UI.WebControls.DropDownList) の型と互換性がありません。」
っていわれちゃった…
この作った継承クラスで目的のDROPDOWNLISTを定義してるのが間違ってますか?

588:344
07/04/19 18:48:58
>>587
vb.netの言語仕様に関してはちょっとわからない。
↓を参考にしてみて挑戦してみてください。
URLリンク(www.atmarkit.co.jp)

589:nobodyさん
07/04/19 19:42:43
ありがとう、がんばってみます!

590:nobodyさん
07/04/20 12:16:41 ev1GBwjC
>>580-581
リファクタリングを早くする方法は
スレリンク(tech板:13番)
を参照のこと。

ただそれによって早くなるのは
スレリンク(tech板:40番)
という理由らしいから、使い方はお気をつけて。

591:nobodyさん
07/04/20 13:04:58 B09CNaZo
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。

592:582
07/04/21 00:50:22
>>590激しくサンクス
今まで、しょうがないんでWebサイト切り離してリファクタしてました。


593:nobodyさん
07/04/22 00:20:10
経験豊かな方ご教示願います。
ある事情があって先にHogeServerというconnectionStringsを使っていました。
で、ユーザー認証その他の機能を使いたくて以下のように変更しました。

<connectionStrings>
<remove name="LocalSqlServer" />
<add name="HogeServer" connectionString="以下略
</connectionStrings>

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="HogeServer"
applicationName="Hoge"
以下略

こうしたところ、ユーザーの登録や削除はASP.NET構成ツールでうまく機能しました。
ユーザー登録関連のコントロールもちゃんと動きます。
ところが、ロールの設定やプロバイダの設定でエラーがでます。
どうもmachine.configに上書きしてない"LocalSqlServer"という項目がかなり残ってるようです。
こんなとき、みなさんならどうしますか?
1.machine.configを検索して"LocalSqlServer"の項目をすべて"HogeServer"に書き換える
2.machine.configを検索して"LocalSqlServer"の項目をすべてweb.config上でRemoveして"HogeServer"に書き換える
3."HogeSerVer"を"LocalServer"に戻してコードの中の"HogeServer"をすべて書き換える

どんな影響があるのか不安でどうしたらいいかわかりません。ご意見をお願いします

594:594
07/04/22 10:26:39 g6P3Re1p

認証関連ですがお手上げなんで教えてください
Windows Server 2003 R2で,
テキストファイルで作成したC#のdefault.aspxに
URLリンク(localhsot)のようにアクセスすると認証のダイアログが出ず,
URLリンク(127.0.0.1)のようにアクセスすると認証のダイアゴルが出てしまいます.
認証のダイアログを出さないようにするにはどう設定したらよいのでしょうか???
IISのディレクトリセキュリティの設定では,「匿名アクセスを有効にする」と「統合Windows認証」にチェックが入っています.
ファイルのセキュリティでは,NETWORK SERVICEが読み取りと実行が可能になっています.

595:nobodyさん
07/04/22 14:13:19
>594
Windows認証が効いてるんだろ?
チェック外してみろ。

596:nobodyさん
07/04/22 23:29:14
Webアプリ久々に開発することになって、最近ASP.NET2.0弄り始めたが
なんだこれ・・・過去に苦労してたのがすっげー楽に実現できる。
カルチャーショックだな

597:nobodyさん
07/04/23 10:11:07
デカルチャー

598:nobodyさん
07/04/23 11:16:42
>>596
俺も6年ぶりぐらいにWebアプリに戻ってきたけど、かなりのカルチャーショック。

ADO.NETの仕組みとか、.NETのライブラリの基本とかが膨大すぎて覚えるのが大変。
オブジェクト指向は過去に経験しててよかったとオモタ
クラシックなaspの仕組みしってるとasp.netの裏側も見えるので損ではないとオモタ

599:nobodyさん
07/04/23 22:52:53 SAH2Jxj+
だが逆にHTMLを自前で吐くようなperlとかつかってたころには
あっさりとできたものが、ASP.NETではできないとか
やりかたが複雑とかわかんないとかいうのがあって
むかつくこともないわけではない

600:nobodyさん
07/04/23 23:15:20
ないと思うが。


601:nobodyさん
07/04/23 23:34:14 Qv1rWHCm
ASP.NET2003での質問
複数の画面を同時に出すフレームワークについて。

あるフレームワーク処理関連を全てコピーして、
別のフレームワークを作ったら、両方とフレームワークが効かなくなってしまった。
原因が全くわからない。
一番、多い原因は何ですか?
リンク・コード内の名前直しは間違ってません。

602:nobodyさん
07/04/23 23:41:44
いい加減意味不明な言葉を直せよw


603:nobodyさん
07/04/23 23:44:13 Qv1rWHCm
すまない。
つまるところ、フレームワークをコピペして、
一つのプロジェクトの二個のフレームワークが出来ました。
そしたら、二つとも画面の合成が効かなくなってしまった。
エスパー希望

604:nobodyさん
07/04/24 00:12:07
言ってることがわかんね。

605:エスパー
07/04/24 01:24:00
ふむ見えた。
この問題を解決できるエスパーは現れないみたい。

残念ですた。

606:nobodyさん
07/04/24 12:30:12
>>601
意味不明だが、なんかが重複定義されてるんじゃね?

607:nobodyさん
07/04/24 16:19:21
あるフレームワーク処理関連を全てコピーして、
別のフレームワークを作ったことが原因では?
これが一番多い原因だと思う。


608:nobodyさん
07/04/24 19:00:49
単品フレームワークでの動作は完璧?
だったらもう一度ソースの中の名前をスミズミまで見てみれ
意外な所に自動生成された名前があったり必要な宣言がされてなかったり…

609:nobodyさん
07/04/24 19:03:45
だいたいフレームワークってなによ?

610:nobodyさん
07/04/24 22:43:33
ざんねんながら単なるフレームのことなんだなこれがw


611:nobodyさん
07/04/24 23:06:20
単なるフレームかよ。シネヨ。
ディレクトリが違うから絶対パスで記述しても、そんなファイルねーだけだろ。
わざわざasp.netスレで聞くんじゃねー


612:nobodyさん
07/04/25 00:27:48
フレームワークってaspxのことかな・・・と思ったが違うのか。
よくaspxをコピペするときにRegisterブロックあたりまでコピペしてしまって
コンパイルエラーの原因がわからず泣いてる奴がいるよな。

613:nobodyさん
07/04/29 15:25:29
開発環境からページの実行をしたときに使うWebブラウザはどこで指定できるんでしょうか?
標準のブラウザを火狐等にしても、IEが立ち上がってきてしまいます。
オプション等を全部見たのですが、環境のところにWebブラウザという項目があったものの、
それらしいところが見つけられませんでした。


614:nobodyさん
07/04/29 16:31:14
ソリューションエクスプローラで.aspxファイルを右クリして出てくるメニューに
デフォで"Webページの実行"みたいな名前の項目のすぐ下に
Webブラウザを選択して表示みたいな項目があってそこで
ブラウザの変更はできた。
項目の正式名称は忘れたw

615:nobodyさん
07/04/29 22:38:45
データをDBから読み込んで、DataGridで表示しています。
ソートせずに、そのまま更新ボタンおせば該当行が更新モードになります。
しかし、ソートした後に更新ボタンを押すとソート前の行が編集モードに
なってしまいます。いろんなサンプル見ましたが、このことにふれたソース
がなく、悩んでいます。どなたかご存知でしたら教えてください。


616:nobodyさん
07/04/30 02:26:32
書き方悪いので訂正します。
データをDBから読み込んで、DataGridで表示しています。
ソートせずに編集ボタンおせば該当行が編集モードになります。
しかし、ソートした後に編集ボタンを押すとソート前の行が編集モードに
なってしまいます。いろんなサンプル見ましたが、このことにふれたソース
がなく、悩んでいます。どなたかご存知でしたら教えてください。


617:nobodyさん
07/05/01 06:32:36
>>614
サンクスです。
休み明けにやってみます。


618:nobodyさん
07/05/01 20:11:30
>616
自己レス。
解決しましたのでこの質問はなし。



619:nobodyさん
07/05/04 14:59:15 Fic8rDCB
2003 SERVER+ADSLですが先日無線ルーター(現在はLANで接続)を入れたら「localhost」ではサーバーを立てているPCから接続できなくなりました。
LAN内の別PCや自宅PCからは普通に接続できます。
そしてなぜかASP.NET自体タイムアウトで接続できない状態です。
再起動するもダメです。
何か設定が必要なのでしょぅか?

620:nobodyさん
07/05/04 19:59:17
>2003 SERVER+ADSLですが先日無線ルーター(現在はLANで接続)を入れたら
どんなネットワーク構成図?
どんなネットワークではうまくいっていて、そのネットワークの何をどうしたの?

>現在はLANで接続
現在はって、昔はWAN接続?

>「localhost」ではサーバーを立てているPCから接続できなくなりました。
localhostで、何から何に接続できないの?

>LAN内の別PCや自宅PCからは普通に接続できます。
サーバと同一LAN内の別PCや自宅PCでlocalhostで接続したの?

>そしてなぜかASP.NET自体タイムアウトで接続できない状態です。
どこから接続してタイムアウトになるの?
「なぜか」だと思う理由は?
サーバのIPアドレス直入力では接続可能?
127.0.0.1ではどう?

621:nobodyさん
07/05/07 00:54:06
Cookielessモードについての質問。
AutoDetectに設定すると検索ロボットからのアクセスでログが荒れる
のだけれども、UseDeviceProfileだと設定を作っていくのが面倒。
しかもプロファイルを設定してないUAでくると……

UserAgentに「Yahoo」とか「Google」の文字があったら無条件で
非Cookielessセッションに切り替える方法ってない?

現在はUseDeviceProfileを使用してMozillaを継承したbrowserファイル
でなんとか制御中。Defaultを直接継承して「yahoo」にマッチするように
設定してみたんだけど、なぜかMozillaのほうが優先されてしまう。

622:nobodyさん
07/05/07 22:11:59 28dJTdJ9
>>600
本当にないと思ってるのか
直接Writeしないとできないことはまだ多い

623:nobodyさん
07/05/07 22:15:22
直接Writeしたら少なくとも同じことはできるだろっつってんだよ。


624:nobodyさん
07/05/08 02:35:36
DBからデータ読み込んで、動的にグラフを作成して表示するって可能なんでしょうか?
普通のFormならpictureboxを使用して描画できると思いますが、ASP.NETではどのような手法がありますか?

625:nobodyさん
07/05/08 09:21:32
>>624
System.Drawingを使うのだよ。
サンプルは腐るほどころがっている

626:nobodyさん
07/05/08 10:04:00
POSTされたXMLデータはどうやって取得するのですか?

たとえば、blogにあるwebPingを受け付けるサービスを作りたい場合、
blogからpostされたxml形式のwebPingの内容を取得する方法を教えてください。



627:nobodyさん
07/05/08 11:04:40
URLリンク(pietschsoft.com)
で、正規表現を使ったURL書き換えが紹介されていたので早速実装してみました。

書き換え規則はこんな感じです。
<add url="~/users/(.*)\.aspx" mappedUrl="~/users.aspx?u=$1"/>

URLの書き換えはうまくいったのですが、そのファイルの中に
<script type="text/javascript" src="js/swfobject.js"></script>
<link rel="stylesheet" type="text/css" href="css/RootStyle.css" />
などの外部ファイル参照があるのですがこれらがことごとく失敗します。

開発中の環境とURLが違うためにURL指定することはなるべく避けたいわけです。
そこでsrc="/js/swfobject.js"のようにルートからの絶対パスで書いたのですが
これもうまく解釈されません。

なにか上手い方法をご存知ありませんか?

628:624
07/05/08 11:31:36
自由に描画した画像を出力する場合に、
bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
とすると、新しいページに画像だけが表示されますが、
特定のImageコントロールに表示するには、やはり画像
ファイルを一時保存して、ImageUrlを指定しなければならないでしょうか?

629:nobodyさん
07/05/08 12:15:21
>>626
xmlっても普通にstringのpostだからRequest.Formで取得できるのでは?

>>627
それじゃ、そのaspxのあるディレクトリ配下指定だよ。
HttpServerUtility.MapPathのServer.Mappthを使うと幸せになれるかも。


630:nobodyさん
07/05/08 12:25:43
>>628
昔、classicなaspでやってたときは、確か、たとえば
bitmap.aspで、Response.BinaryWriteでbitmapを出力するだけのaspを作って、
<img src="bitmap.asp">とかってよくやっていたものだが、

同様にして、BitmapButtonのImageUrl="bitmap.aspx"すればだめかな?

631:nobodyさん
07/05/08 13:09:10
>>630のはASP.netでもその方法は使える。

Bitmap出力するだけならashx使っても良いし、
またはdefault.aspx?mode=bitmapみたいな
urlをImageUrlに使ってクエリ文字列"mode"が"bitmap"
の時は画像を出力するというふうにしてもいいと思う。

データの受け渡しはSession変数使うのがいちばん簡単かな。


632:nobodyさん
07/05/08 13:24:41
補足。
データの受け渡しってのはbitmapのことじゃない。
ページのクラスのフィールドに文字列を保存しても次のリクエスト時には消える
から、何か画像の生成に必要な一時データがあるならの話ね。

633:nobodyさん
07/05/08 13:29:02
>>629
stringのpostだけど、Formの名前?がわからない。
URLリンク(www.nurs.or.jp)

FormのTextをSubmitするのではなく、こんな感じで送られてくるので。

634:nobodyさん
07/05/08 13:41:15
>>632
DataBaseのPrimayKeyとかを渡して、そのIDの画像を表示するとかのことね。
ただSessionが消えることを考えると、文字としてaspxに埋め込まれるGETの方が
ブラウザのキャッシュに残ったときや、戻る進むで遷移したときに対処しやすい。

そもそもSessionでデータを引き渡すだけでいいなら、aspx?mode=bitmapも必要ないし。

>>633
そのaspxに対してstringなデータとしてpostされてくることは確かなわけ?

であれば、Request.FormはRequest.Form[i]のようにindexで取得できるのでキー名は不要。
もし知りたいならRequest.Form.AllKeysですべてのキー名が取得できるが、試してみた?
まずはmsdnを嫁。


635:nobodyさん
07/05/08 13:50:10
>>629
そのようですね。
/を最初につけるとルートからの指定ってのがあったと思ったんですけど。
./と同じ解釈になってしまうのってなんか釈然としません。
まーDosやうにくすとは違うってことでしょう。

>HttpServerUtility.MapPathのServer.Mappthを使うと幸せになれるかも。
物理アドレスがソースに含まれてしまうみたいですね。
これは怖いです。

RequestからUrlのベースをパースするとかめんどくさいことやればなんとか
なりそうですが、書き換えルールにディレクトリを含めるのをやめるのが
一番簡単かもしれないですね。

<add url="~/users_(.*)\.aspx" mappedUrl="~/users.aspx?u=$1"/>

636:nobodyさん
07/05/08 13:56:01
>>635
いやだから、物理アドレスから、IISでいうところのwwwrootまでを削れば、
IISのルートフォルダを起点とした絶対パスが取得できるのでは?
(デフォルトのIISのインスト環境)

それがいやなら、完全に手動で
../../../js/swfobject.js
のようにルートまで/../../を使ってもどって指定してやればいい。

↓参考
URLリンク(www.ipa.go.jp)

637:nobodyさん
07/05/08 14:08:39
>>634
>そのaspxに対してstringなデータとしてpostされてくることは確かなわけ?
確かなわけです。 というか、webPingの仕様がそういうものだから。
Request.Form.AllKeysは気付かなかったけれど、
Request.ContentTypeが"text/xml"であることを確認してRequest.InputStreamで全部ぶっこぬいたらうまくいきました。

たぶん。


638:nobodyさん
07/05/08 14:32:11
>>636
ああ、なるほど。
IISのルートフォルダを起点とした絶対パスは
どちらも同じなんですよ。
そのルートフォルダを起点とした絶対パスを
うまく指定する方法がなくて困ってるわけです。

開発環境
localhost/js/…
localhost/css/…
公開AP
www.app.net/js/…
www.app.net/css/…

アプリケーションファイルがルートにある間は"js/…"でいいわけですが、
localhost/app.aspx?user="username"
URL書き換えによってアプリケーションファイルのフォルダが
localhost/user/username.aspx
に偽装されてしまったため、相対指定で対処きなくなったんです。

パラメータが動的に増えて階層が動的に変化する場合もあるわけで
せっかくURLの書き換え規則が正規表現で書けるようになったので
それをフルに使いたいと思ったんです。

ひょっとして"/js"などのルートからの絶対指定ができないのは、
ASP.NET開発サーバだけですか?
IISならできるとか?

639:nobodyさん
07/05/08 14:51:08
>>638
そうか、その絶対パスでみれないからだめなのかorz

すまなかった。お詫びにこんなもの探してきた↓
VirtualPathUtility.MakeRelative("/design/css/main.css", "/images");


640:nobodyさん
07/05/08 15:00:37
他にはここが詳しいな。
URLリンク(msdn2.microsoft.com)(VS.80).aspx

641:nobodyさん
07/05/08 16:11:39
>>639>>640
そうそう。そうなんです。
これからじっくりと試してここに報告に来ますね。

まだ解決できたわけではないけれど、おかげで十分幸せになれました。
ほんとにうれしかったです。ありがとう。

642:nobodyさん
07/05/08 17:06:46
>>634
それもそうだね。
?mode=bitmap&id=1&key=xxxxxみたいな感じでクエリ文字列にデータを含める方法ね。
そういう方法でするなら画像生成部分を別のaspxに分離したほうがスマートだ。

あくまでもwinのGUIに近い感じで開発したい場合、
クラスのフィールド変数を使っては値をやりとりできないため
別の方法で値のやりとりしなければいけない(Session変数など)
という注意点を書きたかっただけだから混乱させてしまったかな。
その方法は、別にSession変数でなくても>>634の方法でもいい。


用途によるけど、履歴に残したくない、表に変数内容を出したくない場合
(キーに顧客の氏名、キャプチャイメージの文字列などが含まれるなど)はやはり
URLのクエリ文字列に含めるのは好ましくない。

なおかつ表示が一時的で良いならSession変数を使うほうが良い。
まぁ複数の画像を生成する必要がある場合?mode=bitmap&img=hoge
みたいにクエリ文字列を追加しないといけないけれど。

それ以外だったら>>634の方法のほうがむしろいいかも。

追伸
Session使った場合も動作の安定性を確保するために?mode=bitmapは最低限必要。

643:nobodyさん
07/05/08 20:13:20
>>642

>あくまでもwinのGUIに近い感じで開発したい場合、
なるほど。asp.netはwebの概念とWindowFormの
概念が混じってるから難しいね。

一番良いのは動的に生成したBitMapを直接、
指定できるカスタムコンポーネントを作ることだねぇ。

644:624
07/05/08 22:50:44
>>628
>>639
すばらしいです。ありがとうございます。
ただ、ashxで試しに折れ線を描画してJpeg画像作成してみたのですが、
折れ線がガタガタな画像が表示されました。
品質を指定すれば改善するのでしょうかね・・・。また明日試してみたいと思います

645:nobodyさん
07/05/08 23:06:48
>>644
ヒント:
Graphics.SmoothingMode


646:nobodyさん
07/05/09 14:53:51 189NeqEf
.aspxで参照設定したDLLから同一ディレクトリ内の別のサブディレクトリにある
XMLファイルのパスの取得は出来ないんでしょうか?

wwwroot
└hoge
├a.aspx
└ hoge2
└b.xml←このファイルのパス

DLLではserver.Mappathは使えないですしa.aspxから引数として
ファイルパスを渡すのも仕様上NGで絶対パスをベタ書きするのもNGです
とにかくxmlファイルの内容をa.aspxで参照しているDLLから取得出来れば良いのですが…

647:646
07/05/09 14:56:50
すいません、なんか質問内容がブレてますね…
したい事はxmlファイルの内容をDLLから取得です。
相対パスはその為の手段として思い付いた事っす。


648:nobodyさん
07/05/09 16:08:06
>>646

-----------DLL.cs-------------

string foo = ConfigurationSettings.AppSettings["bar"];
XmlDocument myDoc = new XmlDocument();
myDoc.Load(foo);

-------------web.config--------------

<appSettings>
<add key="bar"
value="~/b.xml" />
</appSettings>

これじゃだめなの?




直接関係ないけど、変数名にhoge使う奴はしね

649:646
07/05/09 16:48:09
>>648
ありがとうございます。
web.configファイルの存在を忘れてました…
試してみます。
ちなみに…GW明けで修正案件4件以上入ってきたのでマジでしねそうです…

650:646
07/05/09 18:18:52
>648の方法を試してみたのですが
>xmlDoc.Load(foo);
の部分でファイルパスが絶対パスに変更されwin32\\system\\...のような形に
なってしまいアクセスしたいファイル意外のパスを参照してエラーがででしまいます。
むぅ…DLLのコード内でWebアプリのパスだよと指定する方法があるのでしょうか?

651:nobodyさん
07/05/09 18:36:40
>>650
ありゃ。 じゃあこれはどう!?

-----------DLL.cs-------------
public void trymefunc(HttpApplication app)
{
  string foo = app.Request.MapPath("~/b.xml");

  XmlDocument myDoc = new XmlDocument();
  myDoc.Load(foo);

  ...
}

-----------default.aspx.cs-------------
protected void Page_Load(object sender, EventArgs e)
{
  ...
  xxx.yyy.trymefunc((HttpApplication)sender);
  ...
}

なんか駄目かもしれんけどさ。

652:nobodyさん
07/05/09 18:38:31
だめだね。 キャストがむちゃくちゃ。 しね>>651

653:nobodyさん
07/05/09 18:43:12
>>652
うるせーはげ

よし。わかtった。
651をちょっと変更しる。

-----------default.aspx.cs-------------
protected void Page_Load(object sender, EventArgs e)
{
  ...
  xxx.yyy.trymefunc(ApplicationInstance;);
  ...
}


korede ikeru hazu

654:nobodyさん
07/05/09 18:47:30
おっと、セミコロンがちょっと多すぎたぜ

655:646
07/05/09 18:59:51
レス本当にありがとうございます。
そちらも試してみたいと思います。
納期が厳しいので最悪のケースはDLLにグローバル変数pathを追加して
セットアクセサでa.aspx.csからpathに値をsetするような形になりそうというか
この方が楽なんですがこちらを選んだら負けのような希ガス

656:nobodyさん
07/05/09 19:49:11
>>655
System.IO.Path.GetFullPath
は使えないかい?

657:nobodyさん
07/05/09 21:31:20
>>646

URLリンク(www.abc.fscs.jp)
こんなんでどう?


658:nobodyさん
07/05/09 21:47:21
なんでぇ、ServerMapPathつかえるじゃん。

659:639
07/05/09 22:13:34
しんじまえ

660:nobodyさん
07/05/10 00:21:02
>DLLではserver.Mappathは使えないですし
使えるよ。


661:646
07/05/10 03:06:43
まさかこんなにレスが貰えるとは。
本当に感謝です@デスマーチ中
>656
GetFullPathはwin32\system\...だったか求めているパスが返ってこなかったです。
>658,660
DLLからserver.Mappathを使う為のヒントをいただけないでしょうか?
昼間ググったりリファレンスを読んだ限りは見つけられなかったもので…


662:nobodyさん
07/05/10 10:11:51
>>661
657のリンク

663:nobodyさん
07/05/10 11:00:41
初心者すぎてわけのわからない現象で悩んでます。
自前のSQLサーバーでユーザー管理をすべく
URLリンク(www.microsoft.com)
などを参考に設定をしてみました。テーブルは自動的に作成されました。

で、トップページに貼り付けたLoginコントロールではSQLサーバーに
要求が届き、名前とパスワードが正しい場合エラーメッセージは出ません。
がトップページに貼り付けたUserNameコントロールにはユーザー名が出ません。
Login状態が保持されてないみたいです。

この状態でセキュリティ設定されたディレクトリへ移動するとLoginページに
リダイレクトされてしまいます。

で、LoginページのLoginコントロールにユーザー名パスワードを入力すると
「ログインに失敗しました」と表示されますが、このときSQLサーバーには
なんの要求も来ていません。
Loginコントロールはどちらもドラッグして置いただけです。
CreateUserWizerdではユーザーの登録ができます。
何度か削除したり置き直したりしても変わりませんし、トレースしようにも
コードがないのでトレースできません。
あとはどこをチェックすべきでしょうか?

664:663
07/05/10 11:02:01
web.configはウィザードが設定したものですが、多少いじりました。

<roleManager enabled="true" />
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="ConnectionString"
applicationName="ImageTracker"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="true"
minRequiredPasswordLength="5"
minRequiredNonalphanumericCharacters="0"
passwordFormat="Hashed" />
</providers>
</membership>


665:663
07/05/10 11:03:03

<authentication mode="Forms">
<forms name="AppNameCookie" slidingExpiration="true" loginUrl="Login.aspx" timeout="1440"
path="/members" cookieless="UseCookies" />
</authentication>
<authorization>
<allow users="?,*" />
<allow roles="members" />
</authorization>

セキュリティ設定されたディレクトリのweb.config
<authorization>
<allow roles="members" />
<deny users="?" />
<deny users="*" />
</authorization>

hogeは使ってないので優しく教えてください。お願いします。


666:nobodyさん
07/05/10 11:08:17
>>664
先にこっちやってごらん。
msdnのサンプルはよくわからんことが多い。
URLリンク(www.atmarkit.co.jp)

667:nobodyさん
07/05/10 11:12:58
あとここらへんとか。
URLリンク(www.atmarkit.co.jp)

こういう関係の仕組みは使えそうだけど、結局、自分好みや顧客の要求に応えられる
拡張ができなくて自作になることが多いので、深く知る必要はない気がするが勉強にはなるかも。

668:663
07/05/10 15:52:24
>>666>>667
ありがとうございました。@ITの記事は読みやすいですね。
Login.aspxをページごと削除してみたら認証はできるようになったみたいです。
イベントハンドラが壊れてたのでしょうか。
ただ、認証は成功したもののページへのリダイレクト、認証状態の継続はしていない
ようで、相変わらず目的にページに到達できません。

試しにリダイレクトのコードを直接書いてもifは通過するものの
RedirectFromLoginPageは無視されます。
エラーも出ないところを見ると飛び先の保存がされていないみたいです。
別のソリューションを新規作成して環境からチェックしてみるかないみたいです。

Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate
If Membership.ValidateUser(Login1.UserName, Login1.Password) Then
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, True)
End If
End Sub

669:nobodyさん
07/05/10 16:20:28
>>668
アンチウィルスとか、なんたらゲートウェイとか、
ブラウザのなんちゃらとかで、クッキーとか自動的に削除したりしてない?

認証状態が継続する仕組みを考えてみればわかる希ガス。

670:663
07/05/10 16:42:54
考えてもわからないから聞いてるんです。

671:nobodyさん
07/05/10 17:07:43
  ∧_∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__∧∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>670

672:663
07/05/10 18:51:51
ワロタw
>>670
は別人です。まぁ、言っていることはほぼ正しかったと言ってもいいわけですが。

で、結論ですが、トップページで認証するけど認証状態が維持できないのは
<forms name="AppNameCookie" slidingExpiration="true" loginUrl="Login.aspx" timeout="1440"
path="/members" cookieless="UseCookies" />
でパス指定してたからでした。

membersで認証してもページが表示されずloginから抜けられなかったのは
原因が不明ですが、上記 path="/members"を消したとたんに正常に動きはじめました。
パスの設定のあるディレクトリとないディレクトリで認証が継続しないとか、
そんなことのようです。
結局解決に至ったのは>>667で紹介されたとおりに別のソリューションを作って
web.configを編集しながらエラーが出る記述を発見できたおかげです。

ありがとうございました。

673:nobodyさん
07/05/10 21:57:11
membersってパス内にあるわけ?


674:663
07/05/10 22:28:56
>>673
パス内というか、ルート直下のmembersディレクトリにセキュリティを掛けたかったんですが、
ところが、このパラメータは、HTTP cookieのパスを指定するパラメータだったようです。
つまりクライアント側のパスなんですね。orz

確か最初はルートを指定していたのですが、直感的にセキュリティを掛けるディレクトリのパスと
勘違いして記述を変更したみたいです。サンプルはルートにセキュリティを掛けていたので。

で、ルートの認証cookieと別になっちゃったのが原因だったみたいです。
理由がわかるともっともな話ですが、なんせ初心者なので・・・お騒がせいたしました。

675:nobodyさん
07/05/11 01:53:23
C# で作ったDLL内のメソッド呼び出しが分かりません・・・

676:nobodyさん
07/05/11 03:10:43
DLLの関数はパブリックだよな?

DLLの関数を呼び出したいプロジェクトを開いて
プロジェクトを右クリックして参照の追加でDLLを追加
.csファイルを開いてDLLのクラスのインスタンスを作成して
DLL名.インスタンス名.関数名で呼べるよ
DLL名を省略したかったらusing DLL名;を追加してやる。

677:nobodyさん
07/05/11 03:17:54
間違ってるな…
インスタンス化する時に
DLL名.クラス名 nurso = new DLL名.クラス名();
呼び出す時は
nurso.関数名()だわ

678:nobodyさん
07/05/11 18:50:19
WebResource.axdがキャッシュに残るのはいいんだけど
有効期限が設定されてないから、毎回転送するはめになってます。
AJAXの方のScriptResource.axdの方は何もしなくても有効期限が
1年後に設定されてるんですよね。

どなた様かちゃんと有効期限を設定する方法を知りませんか?

679:nobodyさん
07/05/11 21:10:50
>>678
これかな?
Response.Cache.SetExpires (DateTime.Add(DateTime.Now, TimeSpan.FromDays(365));

URLリンク(www.microsoft.com)

680:675
07/05/12 01:59:14
>>676-677
参照の追加さえすれば普通に呼び出しOKなんですね^^
ありがとー

681:nobodyさん
07/05/13 01:02:53
>677
通常はDLL名とnamespaceが同じだからそうなるわけで、
DLL名違うnamespaceにクラスを作ることもできるかと。

682:nobodyさん
07/05/13 04:32:08
スレ違いになるかもしれませんが、質問させてください。

現在、WinXP/VS2005の環境でWebシステムの構築を行っています。
その際、スプレッドシートにGrapecity社のSPREAD for .NETを利用しています。
自分は担当者ではないので、理由はよくわかりませんが、トライアル版を使用しています。

質問内容はこのSPREADに関することなのです。

フィールドに「削除ボタン」と「入力欄」を持つSPREADシートを使用し、
データベースから取得したデータを表示させ、
入力欄を利用して値の変更を行ったり、削除ボタンを押してレコードを削除するようなページがあります。

問題になっているのが、削除を行ったときの動作でして、
DataSetから指定行を削除し、そのDataSetをsessionに登録し、
onloadのタイミングでSessionから取得したDataSetを表示させているのに、
なぜか入力欄に入力した文字が行削除を行っても上に詰められません。

不思議なことに、削除を行った直後(onloadが走る前・Postbackする前)はちゃんと削除されているにもかかわらず、
onloadが走ると直前の画面がそのまま表示されているのです。

これはSPREADの仕様なのでしょうか。または、ASP.NET側で何か起きているのでしょうか。
コーディング自体にはこのような動作を行う処理は入っていません。

もし分かる方が折られましたら、ご教授願えますでしょうか。

683:nobodyさん
07/05/13 09:37:27
どうせPostBack時もDBから読んでましたってオチじゃねーの?

>これはSPREADの仕様なのでしょうか。
どんな仕様だよっ


684:nobodyさん
07/05/13 10:30:14
考えられる理由はセッションに格納するデータセットに削除フラグをたてただけ
むしくは>>683が言ってることか。

685:nobodyさん
07/05/13 20:22:18
PostBack以外でDatabindしちゃってイベント発生しないことあるよね
これ嫌なんだけど、仕様的にはどうしようもないのかなぁ。

686:nobodyさん
07/05/13 20:26:09
×PostBack以外で
○PostBackで

687:nobodyさん
07/05/13 20:27:20 fPqdga/g
タブのようなインタフェースで自作のユーザコントロールを切り替えたいのですが
どのようにすればよいでしょうか?(下記にページイメージ)

ボタン1、ボタン2 <領域を切り替えるためのボタン
------|
|  領域 | <ボタンを押したら切り替えるための領域
------|

領域にMultiViewを使って、その中にViewを宣言し、
動的にコントロールを追加するようにしてもうまくいきませんでした。
コード例:
protected void Button1_Click(object sender, EventArgs e){
 MyUserControl c = new MyUserControl();
 View1.Controls.Add(c);
 MultiView1.ActiveViewIndex = 0;
}

その他にも領域にPlaceHolderを使用してみたりしてもうまくいきませんでした。
コード例:
protected void Button1_Click(object sender, EventArgs e){
 MyUserControl c = new MyUserControl();
 PlaceHolder1.Controls.Add(c);
}

このように、領域に対してのみ部分更新をしたいのですが(初期化時にロードしたくない)
サーバコントロールを動的にロードするには何を使用するのが適当なのでしょうか?


688:nobodyさん
07/05/13 20:39:33
なんでコントロールを動的に生成する必要があるの?

689:687
07/05/13 21:02:49
一つには領域にロードするコンテンツが多いです。
最初にページをロードするときに通信量を少なくしたいです。
また、切り替えのバリエーションを途中で増やすことなどを考えています。


690:nobodyさん
07/05/13 21:10:30
>>689
情報量という観点からみると、仮にpanel上にコントロールを配置して、
そのpanelのvisibleをfalseにすると、そのpanel上に配置されたコントロールは
htmlとして描画されない=そのコントロールの通信量はゼロとなるけど、
それでは不十分?

691:nobodyさん
07/05/13 22:25:46
レスありがとうございます。
レスポンスを確認したところ、MultiView/Panelともにご指摘のとおり情報量の観点では問題ないようです。

動的に生成するという観点では
MultiView/Panelなどを使った場合、
ウェブデザイナ上で追加しておかなければ表示できないものなのでしょうか?
タブを動的に追加したいです。
(余談ですが、WindowsプログラミングでよくControlを動的に生成していたので、なぜできないのかが直感的にはわからなかった。)

このような疑問を持った背景は
タブの内部だけちらつきなく、部分的に更新したいと思っていて
タブ内領域を一つのサーバコントロールで作成し、
Ajax.NETか何かでサーバコントロールを切り替える方法でもあるのかなと思って「動的」という発想になっています。
(Ajax.NETとか調べ始めたばかりでよくわかっていないのですが・・)

692:nobodyさん
07/05/13 23:38:26
返答ありがとうございます。

レコード削除処理では、削除フラグは用いずDataSetのRemoveを行ってます。
また、DBからの取得も最初に画面が表示されたときのみになっているため、
再度DataBindをしているとは考えにくいです・・。

少し説明ベタなので、伝わりにくいかもしれないですが、実際の処理の流れを簡潔にかいて見ます。

1.画面を表示。SessionがないためDBからデータを取得。DataSetをSessionに登録し、Session情報をSPREADに表示。Ajax利用。
2.入力欄にデータを入力。セルを移動するタイミングでSPREADの情報をSessionに登録。
3.削除ボタンクリック。SPREADの入力欄を一度消去。ここまではJavaScript。
4.SessionからDataSetを取得し、指定行をRemove。指定行を削除したDataSetをSessionに登録。Ajaxで処理。
5.autoPostBackで画面を再表示。SessionがあるためSessionからDataSetを取得、SPREADに表示。

とりあえず原因がわからないため、Onload時に強引にSPREADの情報を書き換えてみることで対処してみる予定です。

693:nobodyさん
07/05/14 01:09:05
>>691
サーバが作成したhtmlをクライアントのブラウザが表示するという形態
であるので、基本的に視覚の状態がいろいろ変化する可能性のある
VisialComponentってのはwebアプリは苦手。

そしてasp.netはpostback以前とpostback後のインスタンスは別々で、
それぞれのaspxの内部のあるオブジェクトはまったく別物であるので、
更新された状態を継続して維持し続けることが難しい。
(↑これをある程度わかりやすく可能にしたのがViewState)

なので、タブを切り替えるというイメージなら、webアプリなら、
それだけでも別ページにしてもいいぐらいな感じだと思う。

そしてこんとロールについては、自分なら、ある程度、固定された
表示パターンしかなければ、Panel等に配置しておいてPanelのvisibleの
オンオフで対応すると思う。

694:nobodyさん
07/05/14 01:19:32
>>692
>5.autoPostBackで画面を再表示。SessionがあるためSessionからDataSetを取得、SPREADに表示。
ポストバック時にセッションに保存したDataSetをSPREADとやらにDataBindしてるんでしょ?
なんで表示時にしかDataBindしかしてないって言い切れてるのかよくわからん。

まぁSPREADとやらが何だかわかんないけど。

695:nobodyさん
07/05/14 02:40:59
>>692
postback時にFpSpreadのSaveChangesメソッドを実行してる?

696:nobodyさん
07/05/14 09:10:54 e3vnemfr
>>695
いえ、そのようなメソッドはコールしていないです・・・。
するべきなのですか?

697:nobodyさん
07/05/14 12:17:44
連レス失礼します。

SaveChangesメソッドをPostBack時にコールすると、期待した動作をしてくれました。
お騒がせしてすいませんでした。

698:nobodyさん
07/05/14 12:21:04 GE+YMe54
AjaxControlToolkitについて質問です。
AjaxControlToolkitを勉強していて、SampleWebSiteを触っているのですが
各AjaxControlToolkitを使っているaspxをみると中で定義されているScriptManagerが
ことごとくコントロールの作成エラーとなってしまいます。
(コンパイルして動かすことはできるのですが・・)
各AjaxControlToolkitのサンプルページ内でエラーを出さずにする方法はどのようにすればよいのでしょうか?

試したこと
各コントロールAnimation.aspxなどを開いてソースを見るとasp:ScriptManagerが解決できてないように見えます。
Web.configを確認したところタグプレフィックスなどの設定は問題がなく、
新しくWebフォームを追加してその中ではasp:ScriptManagerタグを使うことはできました。

(MasterPage内で使うとWeb.configがうまく動かないとか制約でもあるのでしょうか・・)

699:nobodyさん
07/05/14 15:34:14
GridView内のコントロールについて質問です。

GridView内のTemplateFieldにDropDownListを配置したのですが、
ページを読込む際に値を読込んでくれません。
GridViewの外にもDropDownListはあるのですが、それはちゃんと見れます。
出来ればそれと同じ項目をGridView内のDropDownListにも反映させたいのですが、
どうすればいいでしょうか?

700:687
07/05/14 16:17:07
だれか俺のアナルに指をいれてくだし

701:nobodyさん
07/05/14 16:30:03 uOuXEmoB
URLクエリを参照しようとして、パラメーターが存在しなかった場合中身はNULLに
なりますか?

たとえば、
Request["Test"];と参照した場合に"Test"が存在しなかったらRequest["Test"];は
NULLを表すのでしょうか。

702:nobodyさん
07/05/14 16:37:41
>>701
自己解決しました。

703:nobodyさん
07/05/14 16:39:35 uOuXEmoB
>>702

704:nobodyさん
07/05/14 16:43:53
試してから書けよっw

705:697
07/05/14 17:02:35
すいません自己解決しました。

706:nobodyさん
07/05/14 17:22:38
試してから書けよっw

あれ?


707:nobodyさん
07/05/14 21:44:56
>698
確かMasterPageにScriptManagerを配置した場合は、そのMasterPageを使用したaspxでは
ScriptManagerProxyを使わないといけないはず。

708:707
07/05/14 21:48:07
ああSampleWebSiteってあるから自分で作成したページじゃないのかな。
じゃー関係ないかも。

709:nobodyさん
07/05/15 01:51:25
>>700
だからタブごとに別ページにしなさい。
んで、動的に生成するコントロールはコントロールのvisibleのtrue,falseで対応しなさい。

710:nobodyさん
07/05/15 11:02:56
>>709
おまえの指うんこくせえぞ

711:nobodyさん
07/05/17 02:26:12
webページのボタン押下時に、別のWAN内のサーバの共有ディレクトリからファイル読み込んで
その結果を表示したいが、可能かな?クライアントは2000くらいなんだけど

712:nobodyさん
07/05/17 03:20:30
アクセス権さえ設定してればいけるんじゃね?と確かめもせず
レスしてみる

713:nobodyさん
07/05/17 07:26:12 FTfyfp31
自作したサーバコントロールのタグプレフィックスの定義に関する質問です。

Webサイトプロジェクト内にサーバコントロールを定義して、同一プロジェクト内で使用する場合
毎回タグプレフィックスが定義されるのが面倒なのでweb.configにタグプレフィックスを定義したいです。
<@Register ...
<cc1:MyUserControl>
<cc2:MyUserControl2>
と自動的に宣言されるのが汚い。

web.config内にサーバコントロールのタグプレフィックスを定義する場合
assembty属性とnamespace属性とtagPrefix属性を指定するようなのですが (<page><control>要素の配下に)
Webサイト内のApp_Codeで定義しているため、assembly属性に何を入れてよいのかわかりませんでした。
どのように定義すればよいのでしょうか?
assembtyを""にしてもダメでした。

もしかして、別プロジェクトにしないとダメなのでしょうか?

714:nobodyさん
07/05/22 11:28:30
>>710
すみません、自己開穴しました。









アッ-!

715:nobodyさん
07/05/22 13:05:49 x4pNUm3u
ASP.NET2.0でWebサイト作ってます。
App_Codeディレクトリの参照設定について質問があります。
web.configに以下のようなApp_Code内へサブディレクトリを使用する旨の
記述をしているのですが、imports指定しても、「定義されていません」
とか、言われたりするのです。(それもクラスファイルによってできたり
できなかったりする) アクセス就職し云々でなく、基本的にファイルがない
ということになっているようなのですが、同様の現象にあったことがあるかたは
おられますでしょうか? 昨日から原因不明でビルドできず我慢の限界に達しました。

サブディレクトリ名とnamespaceは一致させる必要はありませんよね??



<codeSubDirectories>
<add directoryName="utils"/>
<add directoryName="database"/>
<add directoryName="auth"/>
<add directoryName="information"/>
<add directoryName="consts"/>
</codeSubDirectories>


716:715
07/05/23 08:17:38
自己解決しました。

717:nobodyさん
07/05/29 03:07:54
(; ^ω^)

718:nobodyさん
07/05/29 10:24:53
テキストボックスとボタンを適当に置き、
テキストボックスにタグ(またはタグの1部、?)等を入力してボタンを押すと、

System.Web.HttpRequestValidationException:
危険な可能性のある Request.Form 値がクライアント (TextBox1="<ta") から検出されました。

というページが表示されるのですが、ワケがありましてどうしても、
validateRequest=false
するわけにはいかず、具体的にどう入力するとこの警告がだされるのかを
調べなくてはならなくなったのですが、情報がみつかりません。
どなたかお力添えをお願いいたします。m(_ _)m

719:nobodyさん
07/05/29 13:26:26
単純に'<'と'>'で囲まれたタグ形式のものがエラーになるんじゃなかったけ?
俺ミスリードしてる??

720:nobodyさん
07/05/29 14:46:22
>>719
ありがとうございます。それが、
&# (←半角で)
とか、<>の左側
<
に+アルファベット1文字とか、
ちゃんとあるタグに限らないんです・・・
チェックリストはハードコーディングして隠されてるみたいなんです。

721:nobodyさん
07/05/29 22:34:10
ちゃんとあるタグってhtmlに存在するタグってこと?
それならたぶんエラーにひっかかってるのはhtmlタグじゃなく
XMLのタグあたりじゃないか?
俺はそういうものなんだと思ってたけど…
誰か詳しい人解説きぼん

722:nobodyさん
07/05/30 00:36:44
自分なら「validateRequest=false」とは無関係に
まず正常系の処理として要求を満たす入力可能な文字集合の作成を検討する。

設計者ならば要求を満たす機能を考えることが求められるし
開発者ならば要求を満たす機能を提案し説得することが求められる。
なにより共通して言えるのはエンドユーザの要求を汲み取ることが求められる。

ということでブラックリストを列挙するのではなく
ホワイトリストを作成するのが普通な気がしない?
異常系の仕様は予算に応じてピンキリでいくらでも考えられるだろうし・・・
それこそHttpRequestValidationException発生時に別ページに飛ばすだけの手抜きまで。
それでもあえて回答を考えてみると,

「"具体的にどう入力するとこの警告がだされるのか"は非公開です。」

となる。

「validateRequest=falseは出来ない」とか「調べなくいけなくなった」とか
書いてる時点でこんな回答無意味かも知れない。

723:nobodyさん
07/05/30 11:20:03
postbackした後に任意の<a name>タグに位置を合わせたいんだけどどうしたら良いでしょうか?
redirectでResponce.redirect("moyasi.aspx#kani")だと初期状態に戻ってしまうしどうしていいかわかりません(><)

724:nobodyさん
07/05/30 15:51:02
とりあえず自己解決。
PageのPredrenderでRegisterStartupScript使ってjavascript書きました。

もうちょっと美しい方法ありそうだけどなぁ…

725:nobodyさん
07/05/31 00:12:46
.NET になってから、Response.Flush()はどういった場面で使うの?

726:nobodyさん
07/06/05 11:47:32 5EDNjM+0
質問です。
環境:VS2005、C#+SQL2005

複数人が更新するWebアプリで楽観的ロックを使用してDBにレコードをインサートする際
あるカラムA(IDのような一意のint型のカラム)に重複した値が入るのを避けるにはどうすれば良いのでしょうか?

SQL権限の関係で主キーは設定出来ずSQLで自動で値をふる機能も使えません。
現状は
①DBからカラムAの最大値を取得して1を足す
②①で取得した値をインサート文のvalueに入れてインサート文を実行
という流れを一つのトランザクションで行っていますが、複数の端末から同時に上記①②の処理が
実行された時、カラムAの値が重複する場合があります。

解決策として
1)①の開始直前からインサートが終わるまでテーブルをロック
2)①の処理で取得した値を変数に入れておきインサート実行の直前に重複のチェック
の二つを考えているのですがどちらも決めてに欠けています…
1)はパフォーマンスの低下は確実、2)は根本的解決になっていない。
これ以外の重複を避ける方法というのはないでしょうか?
それとも重複を諦めるかパフォーマンスを諦めるかの二択になるんでしょうか?

727:nobodyさん
07/06/05 19:04:57
>726
unique制約もだめなん?

別トランザクションでユニーク値を管理するテーブルを用意して
そっちから値を引っ張ってくるってのはだめ?
(うちの周りでは自動採番テーブルとか呼ぶね)

728:nobodyさん
07/06/05 22:31:06
>>726

ACCESS_LOG
[LOG_ID] int NOT NULL,
[LOG_DATE] datetime NOT NULL,
[IP_ADDRESS] nvarchar(50) NOT NULL,
[USER_AGENT] nvarchar(100) NOT NULL

って感じのレコードとして

INSERT INTO ACCESS_LOG
SELECT MAX(LOG_ID) + 1, GetDate(), '127.0.0.1', 'FireFox'
FROM ACCESS_LOG

とかじゃだめなん?

ちゃんとうまくいくかはWCATとかでストレステストとかしてみてね。

729:nobodyさん
07/06/06 11:34:51
Webアプリを配置したら、エラーが出ました。
App_Code
に配置したソースコードで
Compiler Error Message: BC30560: 'RegExUrlMappingBaseModule' is ambiguous in the namespace 'RegExUrlMapping_HTTPModule'.
というエラーです。名前空間があいまいということらしいですが・・・・公開環境ではUS版の2003server web を使ってます。

ベースクラス

Namespace RegExUrlMapping_HTTPModule

Public Class RegExUrlMappingBaseModule

Implements System.Web.IHttpModule

/////
継承クラス

Namespace RegExUrlMapping_HTTPModule

Public Class RegExUrlMappingModule

Inherits RegExUrlMappingBaseModule

RegExUrlMapping_HTTPModule.RegExUrlMappingBaseModule
と、装飾して宣言してもまったく同じエラーが出ました。

web.configは開発環境からコピーしたものを使ってます。
machine.configが違うのでしょうか?

ヒントだけでもお願いします。

730:729
07/06/06 11:39:34
あ、ソースはこれです。
URLリンク(pietschsoft.com)
URL書き換えを正規表現できるってことでトライしてますがいろいろつまづいて
以前にもここで質問してます・・・おかげさまで開発環境ではちゃんと動くようになったのですが。。。
すみません。よろしくお願いします。

731:729
07/06/06 14:33:45
事故解決。
どうにも次々に問題が発生するので思い切って削除しました。

732:nobodyさん
07/06/06 19:41:27 bb3nk3cA
ご意見聞かせて下さい。
環境VS2005、VB

ブラウザの左側にtreeviewを使用したメニュー、右側の領域にコンテンツ
というページ構成を実現させたいのですが、

メニューをクリックした時に、右のメニューを描画せずに左側の領域だけ
画面を切り替えるのは実現可能でしょうか?

MasterPageを使用していますが、メニューも描画されてしまいます。

フレームは使用しない方向で。

733:707
07/06/06 21:28:38
>732
Flashを使う。

734:707
07/06/06 21:46:17
あ、TreeViewを使うのか。じゃあフレームを使う以外には無いよ。
Webアプリとはそういうものです。

735:どとねと
07/06/06 22:40:48 WXe4cmTf
質問です。MSのホームページを見るとASP.netを動かす為の
用件として

・WindowsXP(Professional)
・IIS

が必須条件らしいのですが、私のマシンはWindowsXP(Home)にも
関わらず、VS2005をインストールしたところIISがインストールさ
れていないにも関わらずDebug実行する事が出来ます。

そしてファーストサーバにアップロードしたところ通常通り
プログラム(C#)を動かす事が出来ています。

以上を踏まえるとVS2005をインストールすればWindowsXP(Home)
でもASP.net開発はする事が出来るという事で良いのでしょうか?

736:どとねと
07/06/06 22:49:18 WXe4cmTf
あと、一つ質問があります。

上記にあげた私の環境でもプログラミングをした上で
ファーストサーバにアップロードして動作させる事が出来た
のですが、DBと連動させたシステムを作りたいと思って
います。

そこで、ローカルで開発をする際にはDBにAccessを使用して
ASP.netシステムを開発し、外部にASP.netシステムを
(ファーストサーバを利用して)公開する際には、
DB接続文字列(SQL Server用に)さへ変えてしまえば、
Accessで開発したASP.netシステムをファーストサーバ上で
動かす事は出来るのでしょうか?



737:nobodyさん
07/06/06 22:59:24
>>732
まずメニューをどっちに置きたいのかはっきりしてもらおうか


738:nobodyさん
07/06/06 23:01:19
微妙なSQLの構文の違いとかパラメータクエリの扱いの違いとか食らう可能性があることを思うと
最初からSQLServerで作った方がいいと思うよ。

739:nobodyさん
07/06/06 23:01:24
>>736
素直にSQL Server Express Editionでやっとけ。


740:nobodyさん
07/06/06 23:02:49
VS2005入れると開発Webサーバが入るからそれが動いてる。
多少違いはあるが、まあ普通に開発する分にはまずまず問題ない。

741:どとねと
07/06/06 23:11:29 WXe4cmTf
>>738
本当は、私もSQL ServerでやりたいのですがHomeEditionなので
インストール自体が出来ないのでAccessを使っています。。。

>>739
もしかしてHomeにもインストールする事が出来るのですか?
ちょとぐぐって調べてみます。



>>740
ありがとうございます。疑問が解決しました。


742:どとねと
07/06/06 23:14:52 WXe4cmTf
どうやら、Windows 2000 Sererが必要な様ですね。。。
何とか自宅でASP.netシステムを構築出来る環境を
整えたいのですが無理でしょうか。


743:nobodyさん
07/06/06 23:15:47
っつかVS入れたらSSEEも入ってるだろ、あえてはずさない限り。


744:nobodyさん
07/06/06 23:17:19
URLリンク(www.microsoft.com)
よくみろ


745:どとねと
07/06/06 23:24:48 WXe4cmTf
>>743
申し訳ありませんが、SSEEとは何の略でしょうか?
ぐぐってみたら
「Ship's Signals Exploitation Equipment (SSEE) 」
がトップに出てました。SQL Server関係だとは思うのですが。
もっと色々とのぞいてみます。

>>744
WindowsXP(Home)SP2も大丈夫みたいですね^^;
即効インストールしてみます。 

746:nobodyさん
07/06/06 23:27:43
sqlサーバーexpressエディションの頭文字でSSEE

747:nobodyさん
07/06/06 23:31:29
>申し訳ありませんが、SSEEとは何の略でしょうか?
悪かったよ。
SQL Server Express Edition の話してたからまあ分かると思ったんだ。
で、さっきも書いたがVS2005と一緒に入るはずだから、あえて外してなかったら
すでに入ってると思うぞ。


748:nobodyさん
07/06/06 23:33:11
FormViewのなかの、radiobuttomListの値が取得できないんだが、なんとかなりませんか

(コントロール).row.FindControl("ラディオボタン")で出来ません

よろよろ

749:どとねと
07/06/06 23:46:01 WXe4cmTf
>>746,747
プログラムの追加と削除を除いてみたところ
Microsoft SQL Server 2005
`` Mobile[ENU]Developer Tools
`` Native Client
`` Setup Support Files(English)
`` VSS Writer
は入っていたのですがSSEEはどうやら入っていない様です。
ダウンロードしてインストールを行う事にします。

750:nobodyさん
07/06/07 00:37:23
アプリケーションのルートのURL(wwwrootまで)を取得したいのですが
なにか方法はありませんか?


751:nobodyさん
07/06/07 01:47:06
意味が分かりません><


752:nobodyさん
07/06/07 02:09:35 7+sk1quV
>>734
そうですか。ありがとうございます。

>>737
メニューは左です。


753:nobodyさん
07/06/07 03:05:24
server.MapPathは?

754:nobodyさん
07/06/07 06:20:53
>>749
それで入ってる。
「Express Edition」は表示されない。


755:nobodyさん
07/06/07 13:13:21 xS5ryPrS
SQLDB2005と接続して値を返す関数をC#Webサービスで作成したんだけど質問です
WebサービスからSQL認証で接続するにはSQL接続文字列をWeb.configに
残しておかないとダメなんでしょうか?
なんか見た目に不安なんですが…

756:nobodyさん
07/06/07 15:51:26
暗号化すれば?

757:749
07/06/07 22:09:13 bW0yuySj

みなさんのお陰でFirstServerにASP.netシステムをアップロード
しDB連動したアプリを動かす事が出来ました。
ありがとう!!!ございます^^;


758:nobodyさん
07/06/08 02:31:37
>>755
Windows認証は使えないの?

759:nobodyさん
07/06/08 02:42:37
>>756
暗号化が一番使い慣れてるのでその方法にしようかと思います

>>758
今までWindows認証を使った実績が無い為、候補から外してました…
その辺の処理をどうするか分からないのと納期との兼ね合いで
スルーしていた次第です
外部に公開するwebサービスでWindows認証を行なう場合
認証に使われるアカウントはWebサービスを公開しているサーバの
アカウントになるんでしょうか?


760:nobodyさん
07/06/08 18:27:38
SPREADのトライアル版使ってみたんですが、印刷アイコンをクリックしたら
印刷できました。
これってどういう仕組みなんでしょう?
Webアプリなのに印刷できるって不思議なんですけど

761:nobodyさん
07/06/08 23:27:23
>>759
暗号化が慣れてるならそっちでもいいかも。

実はASP.NETはわからない人なので直接的なアドバイスはできないんだけど、
Windows認証やるのは結構簡単です。
接続文字列はユーザーIDとパスワードを加えず、代わりにtrusted_connection=yes
を入れるだけだったかな。

このとき接続に使用されるアカウントは
・IISに登録されているアカウント。デフォルトだとIUSR
・アプリケーションプールに登録されているアカウント。デフォルトNETWORK SERVICE
のどれかかな?ASP.NETだとASPNETってビルトインアカウントが使われると
聞いた気もするのでそれかも。

これらのいずれか(いずれもWEBサーバのアカウントです)がASP.NETからSQLに
接続するために使用されるので、SQLサーバおよびSQL Serverに登録して
あげれば繋がるようになります。
フォルダ共有するのとかと考え方は同じ。
権限とかには気をつけてね。

762:nobodyさん
07/06/08 23:48:01 pjMjCG/O
質問です。

ASP.net上で音声を再生させるにはどうすれば良いでしょうか?
※音声ファイルをHTMLの中に直接コードを入力するのでは無く、
VS上のデザイナ画面に対してToolBoxから何かをドラッグする
事によって音声ファイルの再生を行う事は出来るのでしょうか?
(Image/ImageMapの様な感じ)


763:nobodyさん
07/06/08 23:51:58
>>760
javascript:FpSpread1.Print(); return false;

764:nobodyさん
07/06/10 00:50:22 PggJBMub
ASP.netで画面を分割するのに何か良い方法はありますか?
※マスタページ機能を利用してページの概観を統一する事は現在出来て
います。

765:nobodyさん
07/06/10 11:40:36
>>762
<OBJECT>タグを表示するカスタム(ユーザ)コントロール
でも作れば?
なんで、タグを入力する事が嫌なのか分からんけど。

>>764
画面を分割をどう言う意味で使ってるんだ?
最終的なHTMLとしての画面分割ではなくて
ソース側の話ならマスタページの入れ子とか
カスタム(ユーザ)コントロールで何でも出来ると思うが。


766:nobodyさん
07/06/10 23:44:47 PggJBMub
>>765
なる程そう言う方法があるのですね。ちょっとやってみます。
VS2005では各種便利なコントロールが容易されているのでてっきり
音声再生用のコントロールも容易されていると思っていました。
そして、(仮に)用意されているのならHTMLソースを表示して入力する
のがメンドクサイと思ったからです。



767:764
07/06/11 21:58:45 mdbvw0qz
>>765
HTMLタグで言うところの画面をFrameタグで分割し、画面を左右に
分割して、それぞれ独自に(画面)をスライドをさせる事が出来る
といったイメージです。

あと、もしご存知でしたら教えて頂きたいのですがマスターページで
読み込んだ画面に(ファイル ⇒ AAA.ASPX)ボタンを配置し
ボタンが押下されると、入力内容を確認する画面(ファイル ⇒ BBB.ASPX )
を表示させる為に下記の様にコードを書いているのですがエラーが出てしまいます。
Response.Redirect("BBB.aspx");
※マスタページを使用せずに上記の用に記述すれば問題無く画面遷移する事が
出来ます。一体どこが悪いのでしょうか?




768:nobodyさん
07/06/12 01:19:26 Bz4I9dZe
掲示板作ったが嵐対策に困ってます
IPで制限しても再接続されたらおしまいだし
Cookiで制限しても消されたらおしまいだし
何かいい手はありませんか?

769:nobodyさん
07/06/12 10:05:20
>767
(前半)
Frame嫌いだから自分でやったことは無いけど、
マスターページにFrameタグ書けばできるんでないか?

(後半)
エラーの内容読めばわかるんじゃね?
まぁよくわからんが
BBBで指定してるマスターページのパスが通ってないのではとエスパーレスしとく。

770:nobodyさん
07/06/12 13:09:44
>>767
マスターページは共通部分を開発上は分離して、実行する際には一つに
結合してくれると言う機能なので最終的なHTMLの分割とは切り離して考
えてください。

で、「それぞれ独自にスライドをさせる事が出来る」事を目的とした場合、
マスターページにもASP.NETのコントロールと言うよりも静的なHTMLで
どの様に実現するかが重要

分割した各画面の更新等も独立したければ「(i)frame」、
表示上だけなんとか独立したいのであれば、「疑似フレーム」や
contentplaceholderを囲む「CSSのoverflow」で対応できるかもしれません。


771:nobodyさん
07/06/13 00:29:58
WebViewerについて質問です。
現在ActiveReportsで作成したレポートをWebViewerを用いてWebで表示しようとしています。
製品ヘルプや各種サイトの情報を基に画面を作成したのですが、
「No Report Specified」のメッセージがでたり、外観だけ表示されレポート自体が表示されない状態が続いています。
以下にaspxのコードとWebViewerのプロパティを記載します。
もし原因がわかる方がおられましたら、ご教授よろしくお願いいたします。

//.aspxのコード
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'キャッシュを無効にする
Response.Cache.SetCacheability(HttpCacheability.NoCache)
'レポートの表示
Call subPrint();
End Sub

Protected Sub subPrint()
'レポートクラス
Dim rpt as new ActiveReportClass
'レポートの実行
rpt.Run(False)
'WebViewerに設定
Me.WebViewer1.ClearCachedReport()
Me.WebViewer1.ViewerType = DataDynamics.ActiveReports.Web.ViewerType.ActiveXViewer
Me.WebViewer1.Report = rpt
Me.WebViewer1.Visible = True
End Sub

//WebViewerのプロパティ
ReportName : なし
CodeBase : arview2.cab#Version=2,4,1,1280

772:nobodyさん
07/06/13 14:14:57
>>771
まずは、ActiveReportsに入ってるサンプルなり、
簡単なレポートで表示は出来てる?
出来てないなら設定とかの方が怪しいが。

上記は問題がないならWebViewerのActiveXViewerは
.NETのSystem.Web.Caching.Cacheを利用して実現しているので
Visual Studio 2005のデバッグやらDB処理やらレポート作成やら
で負荷がかかってタイムアウト起してるのかも。
試しにMaxReportRunTimeを長めにしてみたら。

773:nobodyさん
07/06/13 22:33:56
チンプンカンプン(@_@)

774:nobodyさん
07/06/13 23:30:11
>771
ActiveXコントロールだからASP.NETとのバインドがどうとかヘルプにあったと思うけど
そうじゃなくて?

あとGrapeCityに問い合わせたほうが早いと思う。

775:767
07/06/15 01:01:11 dg81PFZs
>>769
HTMLタグは書くのがメンドクサイのでこれまで避けていたのですが、
スライドをさせる為にはHTMLタグはどうも必須うの様ですね。
試してみます。ありがとうございます。

>>770
最近ASP.NETデビューしたばかりでマスタページの事を良く理解して
いませんでした。勉強になりました。ありがとうございます。


776:nobodyさん
07/06/15 01:44:04
>>748


777:nobodyさん
07/06/17 01:07:14
勉強しようかと思ってるのですが
Visual Web Developer 2005 Express Edition と
ASP.NET Web Matrix Project
って何が違うんですか?



778:nobodyさん
07/06/17 03:18:45
マトリクスの方は2003の評価版的な位置付けだったように思う
なので.net frameworkは1.0バージョンを使ってたような。
で2005express エディションの方は.net framework2.0のバージョン
今からやるなら特別な事情がない限り2005の方で良いと思うよ
って思うばっかりだ…

779:nobodyさん
07/06/18 13:42:38 mOIPphwJ
FromViewのインサート時に、主キー部分に初期値を入れたいんだがどうするの?

FormView外で検索キーの値入れてさせて検索ボタン押下
データなければFormViewをインサートモードに
このときに、DBの主キー部分に、初期値を設定したい。



780:nobodyさん
07/06/19 17:47:32
マスターページをつかってみたんだが
マスターページの中のページを表示すると
マスターページ内で指定したフォルダの位置も
中のページといっしょの相対位置になるんだが、
これだと、たとえばマスターページで画像とか表示してると
マスターページと同じ階層にある中のページを表示するときはいいんだが
ほかのフォルダにある中のページ表示すると画像が表示されなくなってしまう
どうすればいいんだろう

781:nobodyさん
07/06/19 20:09:39
>>780
ルート演算子 (~)
URLリンク(msdn2.microsoft.com)(VS.80).aspx

782:nobodyさん
07/06/19 20:16:47
>>779
FormView1_ItemInsertingでFindControlでもして
値設定したら?

783:nobodyさん
07/06/20 00:38:15
お客様「以前VS.NET2003で開発して貰ったASP.NET1.1のウェブアプリなんだけど,
VS2005で開発環境統一できるよね?コンパイルし直すだけでしょう?」

模範解答求む・・・

784:nobodyさん
07/06/20 00:58:45 OfClaPpz
現在ASP.net(C#)で掲示板を作成しているのですが、
投稿内容を画面に連結する為に下記コードを記述しているのですが
改行されません。

string str_contents = "hoge";//動的に画面で入力された内容が格納
               //される。

this.Label1.Text += str_contents + "\r\n\r\n";

Windowsアプリの場合だとこれで改行出来るのですがASP.netではなぜ
改行されず連結されてしまうのでしょうか?


785:nobodyさん
07/06/20 01:52:25
>>784
asp.netはhtmlベースで出力されてるから。
\r\nで出力すると画面上では改行されすhtmlのソースを見るとしっかり改行される
で質問のブラウザ上で改行させるには<br />で明示的に改行する必要がある

786:784
07/06/20 01:54:23 OfClaPpz
>>785
this.Label1.Text += str_contents + "\r\n\r\n";
  ↓
this.Label1.Text += str_contents + "<br />";
とすれば良いのでしょうか?

ちょっと試してみます。
ありがとうございました。

787:784
07/06/20 01:58:48 OfClaPpz
>>785
確認したところ正常に動作しました。
ありがとうございます!!

788:nobodyさん
07/06/20 02:22:39
ほんの少しくらいはWebとかHTMLを勉強したほうがいいと思うよ…


789:nobodyさん
07/06/20 02:23:50
ついでに後々のためにHtmlEncodeもかけとけ。
あ、<br/>追加するのはかけた後でな。


790:nobodyさん
07/06/20 11:36:46
>>783
模範解答ではないが「開発環境統一」が目的なら出来んじゃね?
今後は2.0で動すのだから、追加されたコントロールとかプロバイダとかを
利用する方向性は「開発環境統一」とは別に考えなきゃならんけど。

URLリンク(www.microsoft.com)


791:783
07/06/20 20:53:54
>>790
プロジェクトファイルは更新されるだろうけど
ソースコードは更新されないのかちょっと不安。
ASP.NET2.0方式(?)の部分クラスを利用したコードに置き換わる?
(そうなると思いたい・・・。)
とりあえずVS2005でもプロジェクトをビルドするだけなら大丈夫・・・と。

あとぐぐったところASP.NET1.1と2.0のウェブアプリの共存とかも
別のアプリケーションプールを利用すれば可能みたいなので,
他のウェブアプリと衝突することもなさそうで少し安心。

サーバ側には.NET Framework2.0を入れるくらいだろうし
意外と簡単かな・・・。

コードインラインや/Codeディレクトリも魅力的なんだけど
優先順位を考えると残念ながら今回は見送ることになりそう。

ということでちょっと試してみて問題なさそうだったら安く見積もってみます。
基本設計書のソフトウェア構成部分がちょこっと変わるくらいで
あとはその他簡単な資料の作成かな・・・作業するのも自分だけど
参考になりました。ありがとー。

792:nobodyさん
07/06/20 21:37:22
>>791
旧バージョンの .NET Framework を使用して作成されたアプリケーションを、
新しいバージョンの .NET Framework で実行できるだけだからASP.NET 1.x
コードがASP.NET 2.0 でも正常に動作するってだけ。

コントロールで言えばDataGridなんかもGridViewに置き換えられて2.0では
デフォルトでは表示されてない。で、クラスなんかも同じで利用できるが非推
奨になっていたりするのもある。

で、「ASP.NET2.0方式(?)の部分クラスを利用したコード」ってのがどう言うのを
想定しているか分からんし、かなり前に移行したので記憶が薄いのだが、
確かプロジェクトファイルとかweb.config(互換モード)とか以外はソースに変
更は無かったと思う。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch