認証クッキーのUserDataエリア(Storing and accessing a legacy UserID in asp.net membership)に自分のuserid(int)を保存することで、自分のUserテーブルをasp.netメンバーシップにリンクしたいと考えていました。認証チケットにasp.netメンバーシップのユーザーIDが格納されていないのはなぜですか?
私のアプリケーションは私自身が使用するもので、asp/c#の学習に役立つので、私のデータベースを逆に使ってメンバーシップを調整するという作業を比較することをお勧めします。それに応じてデータベースを調整してください)。
guid(uniqueidentifier)UserIDを私のすべてのユーザー関連テーブルの外部キーとして使用するように変換すると、私のアプリケーションでUserIDに簡単にアクセスできるようにする必要があります。
Guid userID = (Guid)Membership.GetUser().ProviderUserKey;
私が正しく理解していれば、これはデータベースの読み込みが含まれています。おそらく私は気まずいですが、毎回のリクエストで少し不必要なようです。私はチケットに入れたいと思うだろう。私はPK値をチケット(guidまたはint)に入れても問題は見られません。セキュリティリスクはありますか?メンバーシップは、サロゲートではなくキーとしてUserNameを使用するとうれしいようです。それでは、なぜUserIDをチケットに入れなかったのだろう?
int-IDとGUIDをリンクするカスタムメンバーシッププロバイダを使用できます(例:http://stackoverflow.com/questions/6532418/how-to-combine-using-membership-api-with-own)。 -application-related-data/6532611#6532611 –
@TimSchmelter - これは本質的に私がやっていることです。私はちょうど既定のメンバーシップを持つユーザーIDが認証チケットに格納されていないのだろうかと思っています。彼らは忘れてしまったのか、そこに置かない理由があるのか。 – Fruitbat