/ / Asp.net web apiセッション-javascript、angularjs、html5、asp.net-web-api

Asp.net Web APIセッション - javascript、angularjs、html5、asp.net-web-api

コンセプトのWebAPIとセッションを取得していません。

私はasp.netWeb APIプロジェクトを作成し、それにangularjsを統合しました。毎回WebAPIを呼び出すつもりです。

WebAPIでセッションを使用するのは良くないという記事を読みました。私は、WebAPIがステートレスアプローチであることを理解しています。私は同意しますよ。セッションを使用する方法があります。

最初の質問:ログイン後、すべてのページにユーザー名を表示したい場合、WebAPIアプローチで何をすべきですか????

2番目の質問:彼らはwebapiでセッションを使用しないと言います。それでは、クライアント情報を安全に保存するための別の方法/アプローチは何ですか。

HTML5ローカルストレージを使用している場合は、編集可能です。 クッキーを使用している場合は削除できます。

アプリケーションが実行モードになるまで、ユーザーに対して何をどのように行う必要がありますか?

回答:

回答№1は2

これは、セマンティクスがしばしば議論を曇らせる場所です。人々はSessionオブジェクトをステートレスと混同します。また、「ステートレスではないため、セッションを使用しないでください」とよく言われます。

ただし、実際には、安らかな呼び出しがべき等になるように努力する必要があることを意味します。つまり、バックグラウンドで何をするかに応じて動作が変化することはありません。

セッション、またはランタイムキャッシュ、またはそれが何であれデータのキャッシュに使用しますが、ステートレス設計には影響しません。実際、次は何ですか?データベースもステートフルですか?そして、そこからデータを読み取るべきではありませんか?明らかにナンセンス。基盤となるストレージがメモリ内またはディスク上にある場合、クライアントへの状態は反映されません。

@MajoBは他の有効なポイントを作っていると思いますがセッションオブジェクトを使用しないことについては、Web API、セッション、またはその他の何かで何らかのキャッシュを使用しても実際には害はありません。ただし、何かがINセッションである場合は、何かがOUTセッションである場合とは異なる結果を返すようにしないでください。


回答№2の場合は1

パフォーマンスの問題を引き起こす可能性があるため、asp.sessionを避けることをお勧めします。 アプリケーションの状態に関係なく、いつでも期限切れになる可能性があります, クラウド上でスケーリングしない, 同時のajaxリクエストをブロックします)。より良いアプローチは、特にAngularJsと組み合わせてHTML 5ストレージメカニズムを使用することです(ng-storageを使用できます) https://github.com/gsklee/ngStorage)。


回答№3の場合は0

asp.net IDを使用して、サーバー上でユーザー情報をレンダリングすることをお勧めします。