最初にコードを使用してEF5.0をメンバーシッププロバイダーと統合するにはどうすればよいですか?
ユーザーの登録などに使用したい独自のデータベーススキーマがあります。
最初にコードを使用してEF5.0をメンバーシッププロバイダーと統合するにはどうすればよいですか?
ユーザーの登録などに使用したい独自のデータベーススキーマがあります。
SimpleMembershipProviderを確認する必要があります
EFとの併用はとても簡単です。
アップデート
MVC4の場合、空白のテンプレートから始めます。
WebSecurity.InitializeDatabaseConnection
データベースを設定する必要があります。
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "Id", "UserName", true);
パラメータとして、接続文字列の名前、テーブル、一意の識別子列、およびユーザー名列を取ります。
上記のこのコードに使用するモデルは次のとおりです。
[Table("Users")]
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string UserName { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
誰かをログインするには:
WebSecurity.Login(aUsername, aPassword);
上記のメソッドはブール値を返します。それがtrueの場合、ログインは成功しました。
Web.configでは、デフォルトのASP.NETメンバーシップの場合のようにmembershipProviderを定義する必要はありません。
プロバイダーにアクセスする必要がある場合(アカウントを削除するため):
var provider = (SimpleMembershipProvider) Membership.Provider;
provider.DeleteAccount(aUsername); // Delete the account
provider.DeleteUser(aUsername, true); // delete the user and its data
新しいユーザーを作成するため(この場合は、指定したモデルを使用)
WebSecurity.CreateUserAndAccount(aUsername, aPassword, new { Email = aEmail, FirstName = aFirstName, LastName = aLastName });
利点は、通常のasp.netメンバーシップでこれを実行する場合に、手間をかけずに、他のEFクラスのモデルを外部キーとして使用できることです。:-)
http://msdn.microsoft.com/en-us/library/f1kyba5e
これは実際にはEFとは何の関係もありません。
EFはデータを読み取るための単なる方法です。
FORMS認証 http://support.microsoft.com/kb/301240?wa=wsignin1.0も参照してください。