ASP. NET MVC авторизация без подключения к БД, только в проверке кода - PullRequest
0 голосов
/ 18 февраля 2020

Каждый образец, который я нашел для авторизации в модели MVC в ASP. NET, требовал подключения к БД. И выглядит так:

  public ActionResult LogOn(LogOnViewModel model, string returnUrl) {
    if (ModelState.IsValid) {
        if (Membership.ValidateUser(model.UserName, string.Empty)) {

, где Членство относится к соответствующей БД, есть ли способ аутентификации пользователя в бэкэнде без подключения к БД, только в коде?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Посмотрите на код, пожалуйста! Критикуйте, если что-то не так. Спасибо!

public ActionResult LogOn() 
{
    GenericIdentity gi = new GenericIdentity("Bob", "Passport");
    HttpContext.User = new GenericPrincipal
    (
       gi,
       new[] { "managers", "executives" }
    );
    FormsAuthentication.SetAuthCookie(User.Identity.Name, false);
    return View("Index");
}
0 голосов
/ 18 февраля 2020

Вы должны проверить своих пользователей по некоторому известному источнику записи. Это может быть в памяти, в базе данных, через другую службу или с использованием внешнего провайдера идентификации, такого как Auth0.

Если вы просто хотите провести тестирование с несколькими предопределенными пользователями c, то в памяти, вероятно, ваш лучший подход. Вы можете создать собственный поставщик членства, чтобы сделать это, унаследовав от существующих объектов членства и переопределив методы, которые загружают данные.

Вот отличный пример того, как это достигается.

https://www.spiria.com/en/blog/web-applications/how-create-your-own-membership-provider-instead-using-sqlmembershipprovider/

...