XMLに手を出した
今更だけど.Net Framework2.0
ケータイの認証どうしよ?(´・ω・)
クッキーって…(・∀・;) †
アクセス制限をディレクトリごっそり掛けてたのでケータイで見るとバッチリ!
…unicode文字化け起きてた(´∀`)
早速アクセス認証用のページをケータイ用に(おぼえがき・その2でやったこと。)
PCサイトはちゃんと(?)認証フォームとかあってはてなだったりでログインするようになってる。
なんでアクセス制限掛けたいかっていうといわばペアレンタルコントロールのようなものだから…
コンテンツ制限はケータイキャリアにまかせて(どうせ勝手サイトは検索下位だ)
とりあえずケータイからのアクセスはリンククリックだけで認証フォームはスルーさせるコトにする。
.NET側はForm認証使ってるので…試しにPCサイト用の認証後スクリプトを放り込んでみたが。
結果はケータイ用画面は表示できたけど永遠にこのページから移動できず(´ω`)
…そりゃそうだ!(この)ケータイクッキー対応してないやんけ。
.NETのForm認証でticketとか称して(FormsAuthenticationTicket?)クッキー発行してました。
早速ケータイキャリア情報を調べてみる。ケータイはクッキーサポートしてないとみたほうがいいらしい。
クッキー受け入れられるブラウザ搭載しているケータイ自体も少なそう。
SYSTEM.WEB.MOBILEってあるんだけどな… †
以前「ケータイ用ならコレ使えば良いんじゃね?」とか思ったヤツ再び。
web.configにmobilefilterっていうのを設定しておくとモバイル用ページの制御が出来そうなアレだ。
結局使い勝手が悪くて現状はaspっぽくincludeファイルして全ページでケータイかどうかチェックしてるわけだが…
認証用画面にケータイからのポストバックかどうか、とか書いても
表示系はxmlだからそんなのわからないはず…
なのでケータイ用に一枚ページをかませてMobileFormsAuthentication?.RedirectFromLoginPage?でリダイレクトすることにした。
これでセッション情報をクッキーに持たせない(要はQueryStrings?になるらしい…)ようになるそうだ。
これにはweb.configの設定も必要で〜
<system.web>
<sessionState cookieless="UseDeviceProfile"/>
<mobileControls cookielessDataDictionaryType="System.Web.Mobile.CookielessData"/>
<deviceFilters>
<filter name="isAU" compare="Type" argument="UP.Browser"/>
<filter name="isDoCoMo" compare="Browser" argument="i-mode"/>
<filter name="isSoftBank" compare="Type" argument="SoftBank"/>
</deviceFilters>
</system.web>
system.webんなかにクッキーレスですよ、とかデバイスフィルターとか設定しておく。
…だったら認証フォームスルーしなくても †
…だったらこのページに認証フォームを用意すればいいじゃないか?!
となるところなんですがケータイ用にパスワード発行だのは面倒だし…
ケータイ用のはてな認証とかあったっけ?なかったよね?
…そもそもOpenIDみたいなサービスはケータイ向け(特に日本向け)になっとらんような(´・ω・)
(一応…おわり)
EOF