デフォルトから継承するクラスでAuthorization
呼び出されるプロジェクトがありますCodeFirstRoleProvider
RoleProvider
public class CodeFirstRoleProvider : RoleProvider
{
public override void CreateRole(string roleName)
{
if(string.IsNullOrEmpty(roleName)) return;
using(var context = new SISContext())
{
var role = context.Roles.SingleOrDefault(rl => rl.RoleName == roleName);//Roles table exists in database
if(role == null)
{
var newRole = new Role
{
RoleId = Guid.NewGuid(),
RoleName = roleName
};
context.Roles.Add(newRole);
context.SaveChanges();
}
}
}
}
私の他のプロジェクトWebPortal
では、上記の方法を次のように使用したいと考えています
var _role = new CodeFirstRoleProvider();
_role.CreateRole("Admin");
_role.CreateRole("NonAdmin");
このコードを my のどこに配置する必要がありますwebportal
か? アプリケーションの実行時にこれらのロールが初めてデータベースに追加されるようにします。
このプログラムが初めて実行され、誰かが登録ボタンをクリックしたとします。上記の役割を持つドロップダウンリストが必要です。したがって、これらの役割は、登録をクリックする前にデータベースに存在する必要があります。
ロールがデータベースに入ると、将来これらの値にアクセスすることを心配する必要はありません。1 つの方法は、データベースに値を手動で書き込むことですが、使用できるこの関数があるため、そうしたくありません。