« 消費税対策… | メイン | JQuery loadJSON plugin »

2012年09月16日

仕事の周辺 » .NET » MVC

ASP.NET MVCで携帯用サイト

ASP.NETで携帯用アプリ作るならMVC、みたいなイメージ持ってましたが、古い携帯用サイトをASP.NET MVC使ってスマホ対応しようとしておおはまり。
jQuery Mobileのおかげで思ったよりさっくりできたわ~と思ったら、携帯版でセッションがぶつぶつ切れる。
・N2CMS使うの初めて(ASP.NET MVC単体の問題なのか、N2CMS組み込んだからなのかの切り分けから開始)
・SSL下での携帯のCookieの動作不安定らしい
なんていう条件が重なり、丸1日つぶしてしまいました…。

分かったこと
ASP.NET MVC はcookielessセッションに対応していない。今後もする気ない。
iモードHTMLシミュレータIIはクッキーに対応している。W61SHもクッキーに対応している。
それでもデフォルトではURL埋め込みでやり取りされる。
クッキーを強制的に利用させるには、cookieless="UseCookies"を指定する必要がある。
Form認証でクッキーを強制するには<forms cookieless="UseCookies" のようにログイン用URLの指定と一緒に書く必要がある。sessionStateの指定とは別。ローカルではsessionStateの指定だけで動いたので気が付かなかった。

ということで、クッキー非対応の携帯は見捨てることにしました。
案件上、どうしても捨てられない場合は、ヘッダチェックしてクッキー不可の場合は、FormのメソッドをGETにするとか、POST時にセッションIDがURLに渡るようなハックが必要なんでしょうか。

文字コードは一見デフォルトで問題なさげでしたが、POSTすると文字化けする端末があるので、shift_jisにしました。するとjQuery Mobileを使ったスマホ版が文字化けしますが、こちらは検索すれば対応策がいくらでも出てきたので、対応可能な端末を少しでも増やすため、shift_jisに。

投稿者 idic : 2012年09月16日 18:20

コメント

コメントしてください

サイン・インを確認しました、 さん。コメントしてください。 (サイン・アウト)

(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


情報を登録する?