webpages_Membershipテーブル(SimpleMembershipを使用しています)にアクセスして、アカウントのConfirmationTokenを取得しようとしています。
モデル/コントローラー/DALからこのテーブルにアクセスするにはどうすればよいですか?
私が考えることができる唯一のことは、この値を取得するためにコードから純粋なSQLを実行することですが、それは正しいことではなく、エレガントでもないようです。
webpages_Membershipテーブル(SimpleMembershipを使用しています)にアクセスして、アカウントのConfirmationTokenを取得しようとしています。
モデル/コントローラー/DALからこのテーブルにアクセスするにはどうすればよいですか?
私が考えることができる唯一のことは、この値を取得するためにコードから純粋なSQLを実行することですが、それは正しいことではなく、エレガントでもないようです。
私が理解していることから、WebSecurity
ヘルパーを使用して値を取得する直接的な方法はありません。
ユーザーとアカウントを作成すると、メソッドは確認トークンを返します。
string confirmationToken = WebSecurity.CreateUserAndAccount("tester", "test123", requireConfirmationToken: true);
次に、このトークンを (たとえば、QueryString パラメーターとしてリンク内で) ユーザーの電子メール アドレスに送信します。ユーザーがリンクをクリックすると、アプリはこのトークンを取得/読み取る必要があり、次に呼び出す必要があります。
WebSecurity.ConfirmAccount(userName, confirmationToken);
あなたが言及したように、もちろん、独自の SQL を記述してデータベースに直接ヒットすることもwebpages_Membership
、EntityFramewok EDMX モデルに追加して、テーブルを直接クエリすることもできます。
var confirmationToken = Database.Memberships.Single(m => m.UserId == userId).ConfirmationToken;
詳細: