カスタムメンバーシッププロバイダを作成しましたが、UserNameではなくMembershipUser.ProviderUserKey
で操作する方が便利です。だから、私はそのようなコードを実行ProviderUserKey
を取得する:ASP.NET User.Identity.Nameの代替?
if (User.Identity.IsAuthenticated)
{
int UserID = (int)Membership.GetUser(User.Identity.Name).ProviderUserKey;
}
GetUser()
メソッドが実行されたときしかし、ユーザデータがデータベースから取得する必要があり、これが私を悩ませています。これはサーバー時間を無駄にしていますが、今回はどれほど短くても避けたいと思います。
ProviderUserKey
は、User.Identity.Name
のようにもっと便利な方法がありますか?
あなたのアイデアをお聞きしたいと思います。どのようにあなたのウェブページでこの問題を解決しますか?
ありがとうございました。
ありがとうございます、これを行うには関連情報を教えてください。私が見つけたのは.NET 1.1です。3.5版のフレームワークでこれをしたいと思います。 – Wodzu
GenericPrincipalを使用してCookieに追加情報を格納する方法を示す[記事](http://www.xoc.net/works/tips/forms-authentication.asp)があります。この考え方は、HttpContext.Current.Userをこのカスタムプリンシパルに置き換えて、どこにでもアクセスできるようにすることです。 –
ありがとう、しかし、私はこの例が自分のloignコントロールを作ることに基づいて理解しています。私は標準の動作をオーバーライドする必要があります...もし私が標準のログインコントロールを使用している場合。後で私のアプリケーションの中で好都合な方法でもう一度そのプロパティを公開するために、クラスをいくつか拡張することはできませんか? – Wodzu