formsauthenticationticket.userdataプロパティの最大長さ
-
27-10-2019 - |
質問
このチュートリアルに基づいてフォーム認証を備えたASP.NET 4.0サイトのカスタムIDクラスを実装しています。
認証構成と高度なトピックを形成します
AuthCookieに追加のユーザー情報(名/姓、性別、地理的地域、プロフィールサムネイルファイル名など)を保存したいと思います。警告があります msdn.microsoft.com userDataプロパティのサイズの制限について。
UserDataプロパティの決定的な文字制限を見つけることができませんでした。それだけが 暗号化 Cookieは4096バイト未満でなければなりません。
誰かが私のコードで想定すべき最大文字制限を知っていますか?または、これらの頻繁に必要なユーザー情報を保存する方法についてより良いアイデアを持っていますか?
ありがとう
解決
明示的な制限はありません - 最大サイズは、たとえば、ユーザー名の長さに依存します。また、Cookieの最大サイズ(またはCookielessチケットを使用している場合のURLのサイズ)は、ブラウザに依存しています。
そのような情報サーバー側(セッションなど)を保存できます。おそらく、Cookieにある種のキー / IDを使用できます。これを行う1つの方法は次のとおりです カスタムを実装します ProfileProvider
.
FormsAuthentication Cookieで説明するようなアプリケーション固有の情報を保存することの1つの欠点は、アプリケーションがフォームサテンシーから他の認証方法に切り替える必要がある場合に再設計が必要になることです(WindowsAuthenticationなど)。
個人的には、他のものがそうであるように、認証と場合によってはFormsAuthentication Cookieでの認証に関連する情報のみを保存します。 結合を増やします.
他のヒント
ブラウザの最大クッキーの長さに依存します。この記事は役立つかもしれません: ブラウザのクッキー制限
また、この記事は、現在の認証チケットのサイズを確認するのにも役立ちます。ASP.NET認証チケットのチェック