私は最初のASP.NET Web APIアプリケーションを作成しています。私は他のWebアプリケーションフレームワーク(主にSymfonyだけでなく、Djangoや、それほどではないRoR)にも精通しています。リクエストを介した状態の取得と永続化
リクエストがブラウザ/フロントエンドクライアントからWebサーバーに送信された後に発生するイベントのシーケンスを理解するために少し苦労しています。
DBバックエンドを使用するマルチテナントアプリケーションを作成しています。私はデータベースにアクセスするためにADOと未処理のSQLを使用しています。また、ユーザーごとに多くの情報を格納する必要があります。そのため、基本的には、プリロードされたコンテキストをユーザーに対して作成(またはキャッシュからフェッチ)します。
ここには、ASP.NETで達成しようとしているものを示す疑似コードがあります。すなわち
:
は、アプリケーション・コンテキストを作成し、私のような状況の機密情報を取り込むことが可能な
namespace myApp.Controllers { public class FoobarController : ApiController { public Response doLogin(request) { var ctx = myApplicationContext.getInstance(); var user = ctx.getUser(); if (!user.isLoggedOn()) { username = request.getParameter('username'); password= request.getParameter('password'); dbManager = ctx.getDbInstance(); resp = dbManager.internalLogin(username, password); // Load permissions etc for current user, from db // Store user info in cache .. } } public Response ActionOne(request) { ctx = myApplicationContext.getInstance(); user = ctx.getUser(); if (user.hasPermission('xxx')) { } } } }
私の質問は、私はこの種の機能を実装するのですか、ですメーラーの設定、オブジェクトファクトリ、その他の状態情報など。
ユーザオブジェクトにアクセスすることができますdユーザーの資格情報、アクセス許可など)
セッション変数などにアクセスできますか?
ノート
- 私はLinux上でWebアプリケーションを展開することになる、と私は、WebサーバーとしてApacheを使用することになります。
- 私は、Azure、Windows認証など(C#とASP.Net以外の)Microsoft技術を使用したくないです。
- エンティティを使用していないrawデータベース接続を使用したいのですがマネージャー(レガシーアプリケーションポート)
あなたはOWINとASP IDを調べましたか?アイデンティティは、OWINと同様、最近ASPアプリケーションのテンプレートに付属しており、すべての認証のニーズを処理します。 OWINは他のすべてのもの(理論的には)が置かれているより基本的なフレームワークです。学習のために独自の認証フレームワークを構築しようと思っているなら、私はOWINを使い始めます。 ASP.netのWebサイトにはいくつかのチュートリアルがあります。 –