Проверка подлинности токена Web API с помощью Entity Framework - PullRequest
0 голосов
/ 20 марта 2019

Веб-сайт, который я разрабатываю, имеет страницу входа. Это не логин пользователя, а бизнес логин. Они должны войти в систему с бизнес-идентификатором с двумя полями (идентификационный номер и пароль). У меня есть все сущности и бизнес-объекты SQL Server в проекте библиотеки классов. Я пытаюсь выполнить аутентификацию на основе этих входных данных в Web API, и это мой код:

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
    context.OwinContext.Response.Headers.Add("Access-Control-Allow-
Origin", new[] { "*" });

    var identity = new ClaimsIdentity(context.Options.AuthenticationType); 
    var items = new CoreObj().GetRegistrations(context.UserName);

    if (items != null && items.Count == 1)
    {
        var registration = CoreObj.Get(items[0].ID);

        if (registration.Renewal_Info.Pin.ToString() == context.Password)
        {   
            identity.AddClaim(new Claim(ClaimTypes.Role, "LoggedUser"));
            identity.AddClaim(new Claim("username", context.UserName));
            identity.AddClaim(new Claim(ClaimTypes.Name, registration.Name ));

            context.Validated(identity);
        }                   
    }             
    else
    {
        context.SetError("invalid_grant", "Provided username and password is incorrect");
        return;
    }
}

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

  var items = new CoreObj().GetRegistrations(context.UserName);

Могу ли я получить помощь здесь?

...