FC2ブログ
dnx ef が使えないぞ・・・
ああ、最初に dnvm use で使用するdnxを決めるわけか。
visual studio 2015 でプロジェクトを作って実行するくらいならこの操作は必要ないからなー

$ dnvm list

で使えるdnxの一覧が表示されるので、次のコマンドで設定する

$ dnvm use 1.0.0-rc1-update1 -runtime coreclr -architecture x86
パラメータの部分は環境に合わせてくれい('A`)

んで、nuget 経由で、Entityframework.Commands をインストールしとくわけね。

PM> Install-Package EntityFramework.Commands –Pre
PM> Install-Package EntityFramework.MicrosoftSqlServer.Design –Pre

コンソールを開いて、データベースファーストとかやりたいプロジェクトのディレクトリまで移動して
project.json に次の行を追加して保存する。

"commands": {
"web": "Microsoft.AspNet.Server.Kestrel",
"ef": "EntityFramework.Commands" <- この行ね
},

あとは、dnx ef コマンドを実行するだけ
スポンサーサイト
Visual Studio Team Services でのデプロイ
とりあえず、ソースがアップロードされている状態での手順。

BUILD -> create new build definition( +アイコン ) をクリック

deployment タブを選択して Azure Wabsite で next をクリック

落としてくるソースを選択し、 create をクリック
ソースコントロールの設定によって違うかも。

出来上がった build definition の一つのタスクの Azure Deploy の足りない項目を埋める。
埋める項目は
・Azure Subscription ※1
・Web App Name
・Web App Location
すべて埋めることで、赤文字が消えるはず。
※1 Subscription の登録は別画面で行う。Manage をクリックすると出てくる。
New Serivce Endpoint -> Azure をクリック
各項目を入力する。入力する情報は、エディットボックスの右端のアイコンから取得できる

テストを使わない場合は、test タスクの xアイコンをクリックくすれば消せる。

save をクリックして設定を保存する。

Queue Build をクリックして、build definitaion を実行する。
ざっくりasp.net mvc でのform認証処理
ASP.NET MVCでのform認証のを使ったログイン処理の流れはこんな感じだと思う。

このあたり資料を見てなかったのと、とりあえず作ったら動いたので絶賛放置中なのでちゃんと勉強しようと思う。
なんとなくの経験と妄想から予想したので大きく違うかも。ちゃんと自分自身で調べろ。勉強にならんぞ('A`)y~~~

以下フロー

ログイン認証のためのHTTPリクエストが飛んでくる

アクションが呼ばれる

リクエストからユーザーとパスワードを使って認証処理を行う
 とりあえず成功したことにする

FormsAuthenticationTicket オブジェクトを生成する
 この中にログインに成功したユーザー名やチケットの有効期限や永続性などの情報が含まれる。

チケットを暗号化する
 FormsAuthentication.Encrypt(ticket);

暗号化したチケットをクッキーに入れて返す
 クッキー自体の有効期限は無制限でいい。たぶん('A`)。理由は、チケット本体に有効期限があるため
 FormsAuthentication.SetAuthCookie を呼び出せば楽なんだろうけど、ユーザー固有のデータが入れられない。
 調査不足かもしれんが('A`)

次に認証後のリクエストに関して

どっかしらのページのHTTPリクエストが飛んでくる

ASP.NET の基底の認証処理がよばれる
form認証が呼ばれる条件は、Web.config で<authentication mode="Forms"> が設定されていた場合のはず

クッキーに入っている暗号化されたチケットを複合化する

チケットの有効期限を確認する。チケットの永続性がONの場合は、有効期限が無視される

チケットのユーザー名と認証状態から、GenericPrincipal を生成し、HttpContext.User に設定する
 もし、有効期限が切れている、または複合化できなかった場合は、GenericPrincipal は空で作られる

コントローラーの処理へ。
 細かいところは調べてない('A`)


あとは、Controller.OnAuthorization が呼ばれるので、この中でクッキーに入っている暗号化されたチケットを複合化し
ユーザー固有のデータをつかってよろしくやればいい。必要であれば、HttpContext.User を入れ替えてもOK
Magick.NETを使う際にきをつけること
ネタがないので適当に昔引っかかったことでも。

・PDFから画像を生成すると、32bitの画像が生成されることがある
Magick.NET + Ghostscript でPDFから画像を出力すると、画像フォーマットがTrueColorAlpha(RGBAかな) になることがある。
PDF自体の作り方だと思うけどこのような画像が生成される。

で、これをJPEGか何かで保存するとビット深度が32のJPEGファイルが出来上がる。
この出力されたJPEGファイルを.NET標準の描画系のクラスで処理しようとしても動作しない。メモリ不足とかのエラーがでる。

なので、MagickImageクラスのColorTypeプロパティを TrueColor に変更する。
これで24BITの画像が生成されるようになる。

・C++のランタイムライブラリを入れる
x64とx86の2つがある。で、x64版を入れてもx32版はインストールされないので、それぞれインストールする必要がある。
どれか忘れたけど、x64を入れると自動的にx86も入る奴があるのでその感覚でやると、ミスに気が付きにくい。
EntityFramework でクエリを直に実行する
なんか凄い躓いたのでメモメモ('A`)

クエリを書くときは、*.config ファイルのConnectionStringに設定した、name属性の名称をテーブル名に使う。
こんな感じ

SELECT T.ID, T.NAME FROM TestEntities.TableName;

んで、ExecuteReaderメソッドを呼び出す場合に次のパラメータを渡すこと。
System.Data.CommandBehavior.SequentialAccess

これでOK。


TOP
プロフィール

hssamurai

Author:hssamurai
FC2ブログへようこそ!

最新記事
最新コメント

最新トラックバック

月別アーカイブ
カテゴリ