Nancyでのトークン認証について(ソースコード公開しました)

ソースコードを https://github.com/ken200/Tokenken2 にアップロードしました。 ※何をやってたのかは、前々回、 前回を参照してください。

Nancyでのトークン認証について(WebAPI(認証有)、トークン生成アプリが別の場合)

前回の続きです。 WebAPIの認証機能の実装について 「API利用する開発者ごとに固有のトークンを生成、これで認証を行う」ようなことを実現するための調査を行いました。 WebAPIは Nancy の使用して実装することを前提で進めます。 Nancyでは認証の種類として…

こんなの作る予定

仕事でやることになりそうなので調査してました。

選択文字をフォーマットに沿って展開するマクロ

現時点では繰り返し展開のみ実装しています。 例) ★{10}☆ → ★★★★★★★★★★☆ //SimpleExtend.jsee var parseTarget = document.selection.Text; if(parseTarget.match('^(.+)\{(\\d+)\}(.*)$') != null){ var str = RegExp.$1; var cnt = RegExp.$2; var footer …

AngularJS - IEではエレメントのstyle属性に定義したバインド式({{..}})が動作しない??

ChromeとIE11でしか確認していません。 IEでは、スタイル属性のなかでは バインド式が動きませんでした。 ちなみに、data-*属性のなかでは動作し、値が展開されました。下記コードのisLimitOver()が呼び出しされないのです。。 <li ng-repeat="item in items" data-task-id="{{item.id}}" data-task-limit="{{item.limit}}" data-task-finished="{{item.finished}}"> <p ng-click="showDetail($index)"> </p></li>

AngularJS + jQuery + jQueryUI(ダイアログ) を試してみた

なんとなくTodoアプリを作ってみました。 実際に動くものは ここ で確認できます。独自ディレクティブについて。 リファクタリングすれば多少はきれいになるとは思いますが、 凝ったことをやろうと思うと結構考えないと、すぐにぐちゃぐちゃになりそうですね…

ASP.NET WebForms で非同期処理を行う (.net4.5)

WebPageではasync/awaitをそのまま使うことができません。 利用するには以下の手順を踏みます。 1,Web.config設定 /configuration/appSettingsに、key=UseTaskFriendlySynchronizationContextな項目を追加。 詳細は下記を参照。 <configuration> .... <appSettings> <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> .... </appSettings> .... </configuration>

2階層以上のプロトタイプチェーンについて

「prototypeオブジェクトにベースオブジェクトインスタンスを設定したら、多重継承ってどうやるんだ??ベースクラスを設定したらサブクラスのprototype書き換えられないじゃん???」 という考えから抜け出せられず、また継承使わずとも十分実装できること…

関数デコレーターの動作

処理フロー 実行時、インタプリタがデコレーター割り付けを見つけると、直ちにそのデコレーター関数を呼び出す。関数の戻り値は関数オブジェクト(呼び出し可能:callable)であること。 デコられた(被デコ)関数(例ではhello/hello2)を呼び出したときの動きとし…

Ubuntu12.4.1 + Python3 + Bottle + Jinja2 の組み合わせ

少しハマったのでメモ。 Ubuntuのapt-getでインストールできるPython3系は3.2なのですが、 これだとJinja2が動かないようです。 Jinja 2.7 brings experimental support for Python >=3.3. Introduction — Jinja2 2.8-dev documentation ソースをビルドして…

カスタムオブジェクトの定義について

JavaScriptのprototype周りを勉強しながら、過去・現在の自分で書いたコードを見直したところ、 ちょっとまずい構成をしていたことが判明しました。例として以下のコードで考えます。 //ストップウオッチ var StopWatch = function(){ var _st = undefined; …

NancyでSessionを扱う

ナンシーはデフォルトではSessionが無効になっています。 有効化するにはBootstrapperの初期化時に以下を呼び出します。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Nancy; using Nancy.Session; namespa…

Nancyでのセキュリティー (CSRF)

ナンシーでのセキュリティ対策として、CSRFについて調査しました。 パッケージは Nancy.Hosting.Aspnet と Nancy.Viewengines.Razor を使いました。 ビュー - 登録フォーム (Views/form.cshtml) ASP.NET MVCと同様に、チェック対象フォームにトークンを組み…

Nancyメモ

ASP.NETアプリケーションとしてホストした場合の処理フローメモ Nancy.Hosting.Aspnet.NancyHttpRequestHandler 静的オブジェクト。 コンストラクタ内で呼び出すGetBootstrapper()で、 web.configにnancyFxセクションが存在する場合は、そこからオブジェクト…

Nancyでのフォーム認証

ナンシーでフォーム認証を行うには、以下の流れで行います。1, Nancy.Authentication.Formsパッケージのインストール 2, IUserMapper実装クラスの作成 3, ログイン、ログアウトルートの実装 4, フォーム認証の設定 IUserMapper実装クラスの作成 IUserMapper…

Nancyでの静的リソースアクセス

ナンシーで静的リソースへのアクセスを行うには3つの方法があります。 デフォルト設定に従う。 Nancy supports multiple static content conventions at once and is shipped with a default convention that will look for files in the /content path of y…

Nancyのトレース機能

ナンシーのトレース機能について調べてみました。まずはBootstrapperのサブクラスを作成してトレース機能を有効にします。 using Nancy; using Nancy.Bootstrapper; using Nancy.TinyIoc; using Nancy.Diagnostics; namespace NanNan { public class MyBoots…

050plusの留守番電話設定

仕事用の電話番号が欲しかったので、050plus契約してiPhoneで使ってます。 今のところ3G回線でも一部地域を除き、ほぼ問題なく通話できています。*1 そんな感じで完璧ではないけど、まぁいいかなという感じで契約してから半年くらい使ってます。つい昨日、最…

ブログの引っ越し(2回目)

やっぱ自分のデータは自分で管理しなきゃ!ということで、はてなダイアリーからレンタルサーバー上のWordPressへ引っ越ししたものの、日々のメンテナンスに疲れてしまいました。そんな折、はてなブログがいい感じになってきてるということを聞きましたので再…

新しい非同期呼び出し(async,wait)を試す

C#

.NET4.5から導入される新しい非同期呼び出し。 こんな感じで使うようです。 public partial class Form1 : Form { public Form1() { InitializeComponent(); } //内部で非同期処理を行うメソッドにはasyncをつける private async void button1_Click(object …

複雑なラムダ式

C#

最近、ASP.NETMVCのソースコードを読んでいるのだが、そこでは複雑なラムダ式が多々でてくる。 今回はその一例としてアクションフィルタの処理(ControllerActionInvokerクラスのInvokeActionMethodWithFiltersメソッド)を自分なりに解釈し、コードを起こした…

Windows端末でIPルーティングさせる

上記ネットワークにおいて、 開発端末(VM)(Win7)からサーバー(VM)(XP)へ接続できるようにネットワーク設定した時のメモ 通信の流れ 開発端末(VM)(Win7) → ルーター → ホスト端末(Win7) → ホスト端末(Vista) → サーバー(VM)(XP) ルーターのルーティングテーブ…

javascriptで再帰処理

こんな感じで書きました。 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>再帰呼び出しサンプル</title> </head> <body> <p id="msg_aisatu1">おはよう</p> <p id="msg_aisatu2">こんにちは</p> <p id="msg_aisatu3">おげんきですか</p> <p id="msg_aisatu4">調子はどうだい?</p> <…</body></html>

オブジェクト思考のキモを体感するには

このエントリーを読んで。 突破すると一気に学習が加速する「オブジェクト指向学習の壁」を突破する鍵となる知識を、中学生でも分かるように図解してみた(初学者向け) - @fromdusktildawnの本館「壁」を突破できたと思ったのは、デコレーターパターンとコマ…

Jenkinsによるテストの自動化

はじめに Jenkinsの話(CIの話)を聞き、テストの自動実行がとても魅力的に感じたので、 空きPCに環境構築して体験してみた。 やりたいこと VisualStudioのソリューションファイルをビルドする。 MSTestを使ったユニットテストの実行。 ユニットテストの失敗時…

あとでやるリストを抽出&出力するemeditorマクロ(ハッシュタグ機能追加バージョン)

これの派生バージョンとして ハッシュタグ別にリストを出力する機能を追加しました。公式サイトに登録しているもの(本流バージョン)はこれで完成形かなと思います。 出力結果も微妙に違ってくるので派生バージョンの公開は独自に行うことにします。 こちらか…

あとでやるリストを抽出&出力するemeditorマクロ

テキストファイル内に書かれている"あとでやる"リストを表示するマクロです。私個人で、テキストファイルに日々の作業実績記録&あとでやるメモを書き出しています。 これらタスクの消化を忘れないために、タスクのリスト抽出&表示するマクロを作りました。…

行列逆転するemeditorマクロ

アプリ開発時、エクセルを使ってダミーデータを作成するときによくやる操作を自動化できるようにと思い、このマクロを作成しました。 ※DBにSQLServerを使ったときのダミーデータ作成方法。他はよくわかりません。 select雛形をSQLManagementStudioから取得*1…

現在編集中ファイルをバックアップするemeditorマクロ

マクロ第二段です。現在編集中ファイルを保存してそのコピーを同フォルダに作成します。 サンプルソースほぼ引用なので、この場で公開するに留めておきます。 このマクロの発展案として、一定数たまったら別の保管用フォルダに移動する処理を入れたりしよう…

選択範囲の指定列に連番をInsertするemeditorマクロ

EmEditor既存機能で「番号の挿入」が存在しますが、 自分の思っているのとすこし違っていたので、欲しかった動きをするマクロを組んでみました。 公式サイトに登録させてもらいましたので、下記URLから取得できます。http://jp.emeditor.com/modules/mydownl…

ジェネリックな各種リストをスレッドセーフに扱う

C#

その1 System.Collections.ICollectionインターフェイスにキャストすることで、SyncRootにアクセス可能。これでlockを行うことができる。 //こんな感じ var list = new List<String>(); lock (((System.Collections.ICollection)list).SyncRoot) { list.Add("アイテ</string>…

ASP.NETアプリケーションでデバッグ時の値書き換えを有効にする

WindowsFormアプリでデフォルトでできていた、ブレークポイントで張る→止まる→ソースコード書き換え がASP.NETアプリではソースコード書き換えができない。次の設定を行うことで可能になる。

ExpresswebのSQLServerでメンバシップ機能を使用する

クエリのエクスポート この機能で、テーブル定義とレコード設定のクエリを生成することができる。 そのクエリをホスティング先のSQLServerで流す。 web.config設定について ビルド別に使用DBを分けたい場合(例えば、デバッグ時はローカルの*.MDFを使用。本番…

ExpresswebでSQLServerCe4を使用する

VisualStudio2010 Pro SP1 ASP.NET MVC 3 Webアプリケーション ターゲットフレームワークは.NET4 ADO.NET Entity Data Model で確認 はじめに SQLServerは3つまでしかDBを作成することができない。これは嬉しくないのでSQLServerCompact4を使うことにした。 …

TrueCryptでマウント時にフォルダ共有したい

マウント時に行う処理を指定するといったことが、TrueCryptではできなさそうなので、 バッチファイルを作成し、それを実行させることで対応した。 マウント&共有フォルダ作成 <...>は各自環境に置換してください。 cd <ボリュームファイルのフォルダ> "…

レガシーコード改善ガイド5

このメソッドをテストハーネスで動かすことができません 隠れたメソッド privateなメソッドをテストしたい場合の対処方法。 ・publicなメソッドにしてしまう。*1 ・そのメソッドの責務を別クラスに分離する。 ・テストクラスからそのメソッドを呼び出せるよ…

レガシ―コード改善ガイド4

このクラスをテストハーネスに入れることができません いらただしいパラメータ 本番コードでは、それ以外に手段がない場合を除き、パラメーターにnullを渡すのはやめる。 nullを渡せるような実装だと、処理の至る所でパラメーターチェック処理が行われている…

レガシーコード改善ガイド3

いつまで経っても変更作業が終わりません 遅延時間 外部ライブラリなどの依存性がひどいシステムのコードは、ビルドする度に未変更箇所すべてもビルドしなおす必要がある。 その間ぼーっと待つことになる。(遅延時間) 改善済コードだとビルド~テスト実行の…

レガシーコード改善ガイド2

レガシーコードを改善する前に 遠回りな対応方法としてレビュー時に文句を言われると思う。 そこだけ変えても、そこ以外の糞コードはそのままだぞ。意味ないのでは? 動くようになっている箇所の構成を帰るのはいかがなものか? しかし、「これを続けていけ…

レガシーコード改善ガイド1

レガシーコードの定義 "テストの無いコード"すべてをレガシーコードと呼ぶ。 フィードバックを得ながらの作業 システム変更の方法は大きく二種類に分けることができる。 1,編集して祈る → レガシーコード 2,保護して編集する → テストで保護されたコード 単…

Visual Studio 2010でアプリケーションのパフォーマンス・チューニング

DBアプリケーションのパフォーマンス・チューニング − @ITの内容メモ クエリのデータ転送量を減らす 不要な項目をSELECT区に含めない。安易に*を使用しない。 SQLServerからの転送量がかなり節約できる。 クエリの内容をデバッグ出力 Entity Frameworkでは…

こんまり式の片付け

テレビで見て感心したので頭に残っていることを書き出しておく。 種類別に片付け 場所ごとに片付けするのではなく、種類ごと(服,本,書類,,,)に片付ける。 整理対象種類のものを一箇所にまとめて片付けする。こうすることでものの量が把握できる。(その多さに…

レバレッジ・リーディング

読書は自身への投資となる。 本で得た知識を仕事や生活で活かすことで大きなリターンを得ることができる。 "読書"ではなく、自分を運用するための投資作業という意味合い(-> レバレッジ・リーディング)。 多読を行い、より重要な知識を仕入れる。 同じジャン…

IObservableインターフェイス

C#

IObservable(T) インターフェイス (System) IObserver(T) インターフェイス (System) .NET Framework 4から追加されたこれらのインターフェイスを使ったサンプルを作成していました。 オブザーバーパターンは一方通行の通知を行うパターンだというのに、チャ…

匿名メソッドの変数キャプチャ

C#

基本的な大事なことです。 Javascriptのクロージャと同じ考え方です。。。 ど忘れしてましたので再確認を兼ねて書き置きします。 //非同期でFriendGridにイメージを追加していく (ダメバージョン) Task.Factory.StartNew(() => { foreach (var friend in Vie…

開発系エンジニアのスキルロードマップ Part 2

開発系エンジニアのスキルロードマップ Part 2 - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs テスターって単体や結合テストする人たちのことでしょ?別に分ける必要ないのでは?と思っていましたが、 「デベロッパーとテスターの違い」を読ん…

デシジョンテーブルを使ったテスト

直交表はテストの専門家ががんばって勉強することでやっと使いこなすことが可能になるイメージ。 デシジョンテーブルは、専門家でなくても、テストケースを比較的容易に作成できる。 メソッドに対するテストでの使用を想定しているが、機能に対する単体テス…

直交表について4

水準数が少ない場合 2水準系直交表の因子より少ない水準の因子を割りつける場合、 割り付け可能な最小サイズの因子へ割りつける。余った水準値はダミー扱いにして、使用しない・重要パターン用に使用する。 水準数が多い場合 2水準系直交表の因子より多い水…

直交表について3

実際に作ってみた 対象とするのは下画面イメージなアプリケーション 社員情報は社員マスターから取得。全て平社員に属する。 社員を選択しない場合、全社員が対象になる。 有効データは2011/01/20〜2011/06/20に存在する。 実行を行うと処理結果がデータベー…

直交表について2

使用する直交表の決定方法 決定する方法が幾つかある。 最大水準因子の組み合わせから求める 「最大種類の水準を持つ因子と、その次に多い水準をもつ因子の組み合わせパターン数」を持つ直交表を使用する。 自由度からの見積もり(同じような水準数ばかりの場…