私はWindowsAzureクラウド用の新しいWebアプリケーションを開発していますが、利用可能なすべてのガイドライン、最良のプラクティス、ストレージの可能性、キャッシュ、およびセキュリティに混乱しています。私はたくさんのビデオを見たり、たくさんのドキュメントを読んだりしましたが、読むほど、意思決定の層に混乱が生じます。これが私が欲しいものです:
1-ユーザーが電子メールとパスワードの組み合わせを使用してログインできるWebアプリケーションを開発します。ログインすると、ユーザーはUserID+CustomerIDの組み合わせを含むセッションを持ちます。UserID + CustomerIDは、このユーザーの特定のデータを表示するために使用されます。アプリケーションは法律事務所向けであるため、セキュリティは非常に厳しくする必要があります。アプリケーションには10000人以上のユーザーがいて、同時に約200〜500人のユーザーがいる可能性があります。ノードのアップグレード/障害のあるノードの場合にセッションがリセットされないようにするには、ASP.NETセッションを共有キャッシュサービスに保存する必要があることを読みました。128 mbキャッシュには1秒あたり100トランザクションの制限があることを理解している限り、これが機能するかどうかはわかりません。キャッシュからセッションデータを取得している場合、これは1トランザクションとしてカウントされますか?
古いアプリケーションでは、次のようなコードを使用しています(このアプローチは、Azureに適していますか、それとも処理用のカスタムセッション管理システムを開発する必要がありますか?コードサンプルはありますか?):
protected void CustomValidatorLogin_ServerValidate(object source, ServerValidateEventArgs args)
{
string result = String.Empty;
if (DataAccess.User_Logon(this.txtEmail.Text, this.txtPassword.Text, Request.UserHostAddress, Request.UserAgent, ref result)
{
args.IsValid = true;
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, this.txtEmail.Text, DateTime.Now, DateTime.Now.AddMinutes(Constants.sessionExpires), false, result);
HttpCookie cookie = null;
if (cbRemember.Checked)
{
FormsAuthenticationTicket sticket = new FormsAuthenticationTicket(1, result, DateTime.Now, DateTime.Now.AddMinutes(Constants.sessionExpires), false, result);
cookie = new HttpCookie(FormsAuthentication.FormsCookieName + Constants.cookiePrefix, FormsAuthentication.Encrypt(sticket));
cookie.Expires = DateTime.Now.AddYears(1);
}
else
{
cookie = new HttpCookie(FormsAuthentication.FormsCookieName + Constants.cookiePrefix, string.Empty);
cookie.Expires = DateTime.Now.AddYears(-1);
}
Response.AppendCookie(cookie);
FormsAuthentication.SetAuthCookie(result, false);
}
else
{
args.IsValid = false;
}
}
2-同様に、この http://www.windowsazure.com/en-us/develop/net/best-practices/security/ によると、私が知っておくべきセキュリティ上の考慮事項がたくさんあります。誰かがこれらのベストプラクティスを取り入れてログイン機能を作成する方法に関するいくつかのコードサンプルをお勧めできますか?
3-システムは、ユーザーが後でダウンロード、削除、更新できるデータ(アップロードファイル)を保存できるようにします。ファイルは両方ともユーザー固有(UserID)であるだけでなく、顧客固有(CustomerID)でもあります。たとえば、ユーザーは自分だけがアクセスできるファイル(UserID)をアップロードできますが、CustomerIDに基づいて組織全体(法律事務所)が利用できるファイルをアップロードすることもできます。BLOBとテーブルのどちらを選択するのか、そしてその理由がわかりません。さらに、そのような機能を実装するためのベストプラクティスは何でしょうか。
4-データアクセス層にエンタープライズライブラリを使用することを考えています-Azureの初心者向けの優れたビデオウォークスルーを知っている人はいますか?
これは私が知っている非常に多くの質問ですが、それでもいくつかの専門家の推奨を期待しています。
乾杯。