.Net core: установить пользователя как авторизованного и прошедшего аутентификацию - PullRequest
0 голосов
/ 10 декабря 2018

Если я использую Identity (ядро), могу ли я программно установить пользователя, вошедшего в систему?

У нас есть приложение, которое требует, чтобы пользователь мог войти в систему через стандартную Identity (адрес электронной почты и пароль пользователя).) или, в качестве альтернативы, сможете войти через предоставленные данные AD - не все пользователи являются внутренними, поэтому они будут использовать идентификационные данные, другие хотят иметь возможность использовать его.

Итак ... Я используюБиблиотека Novell LDAP и может выборочно запрашивать нашу AD, используя указанные данные для входа в систему, и проверять правильность предоставленных учетных данныхУчитывая это, я могу найти ассоциированного пользователя в таблице AspNetUser.

Могу ли я программно установить зарегистрированного пользователя на это удостоверение?

Т.е. с учетом «пользователя», возвращенного из таблицы AspNetUserКак программно установить этого пользователя в качестве текущего пользователя, вошедшего в систему и прошедшего проверку?

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете программно войти в систему Пользователя, как показано ниже:

public class HomeController : Controller
{
    private readonly UserManager<IdentityUser> _userManager;
    private readonly SignInManager<IdentityUser> _signInManager;
    public HomeController(UserManager<IdentityUser> userManager
        , SignInManager<IdentityUser> signInManager)
    {
        _userManager = userManager;
        _signInManager = signInManager;
    }        
    public async Task<IActionResult> SignIn()
    {
        //get user name from AD
        //query identity user by username
        var username = "test@outlook.com";
        var user = await _userManager.FindByNameAsync(username);
        //sign in user
        await _signInManager.SignInAsync(user, isPersistent: true);
        return Ok();
    }        
}

Примечание

После подписания вышеуказанным кодом вы можете получить User Identity для следующего подпункта.запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...