Требовать роль администратора для ServiceStack's RegistrationFeature - PullRequest
1 голос
/ 02 апреля 2019

Как бы я добавил пользователей в IAuthRepository, не разрешая самостоятельную регистрацию?Есть ли способ требовать определенную роль (например, admin) для RegistrationFeature, или было бы проще создать отдельный проект, в котором только RegistrationFeature работает только на localhost?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

Если вы не хотите, чтобы пользователи могли регистрироваться, возможно, вы не хотите включать сам RegistrationFeature, который не зарегистрирован по умолчанию.

У вас будет больше гибкости всего за , используя сам IAuthRepository в вашей собственной службе для создания пользователей .

Новые шаблоны авторизации ServiceStack показывают примеры использования IAuthRepository для создания пользователей при запуске, например:

if (authRepo.GetUserAuthByUserName("user@gmail.com") == null)
{
    var testUser = authRepo.CreateUserAuth(new UserAuth
    {
        DisplayName = "Test User",
        Email = "user@gmail.com",
        FirstName = "Test",
        LastName = "User",
    }, "p@55wOrd");
}

if (authRepo.GetUserAuthByUserName("manager@gmail.com") == null)
{
    var roleUser = authRepo.CreateUserAuth(new UserAuth
    {
        DisplayName = "Test Manager",
        Email = "manager@gmail.com",
        FirstName = "Test",
        LastName = "Manager",
    }, "p@55wOrd");
    authRepo.AssignRoles(roleUser, roles:new[]{ "Manager" });
}

if (authRepo.GetUserAuthByUserName("admin@gmail.com") == null)
{
    var roleUser = authRepo.CreateUserAuth(new UserAuth
    {
        DisplayName = "Admin User",
        Email = "admin@gmail.com",
        FirstName = "Admin",
        LastName = "User",
    }, "p@55wOrd");
    authRepo.AssignRoles(roleUser, roles:new[]{ "Admin" });
}
0 голосов
/ 02 апреля 2019

Думаю, я узнал, как:

typeof(RegisterService).AddAttributes(new RequiredRoleAttribute("Admin"));

Подробнее здесь: https://docs.servicestack.net/restricting-services

...