【質問】ASP.NETスレ ..
[2ch|▼Menu]
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のタグあたりじゃないか?
俺はそういうものなんだと思ってたけど…
誰か詳しい人解説きぼん


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

4227日前に更新/321 KB
担当:undef