int не содержит определения для [FirstOrDefault]? - PullRequest
0 голосов
/ 17 апреля 2020

Я планирую выполнить аутентификацию токена в C# WEB API, однако я столкнулся с этой firstordefault проблемой

Мой код в приложении:

enter image description here

Я столкнулся с ошибкой, указанной здесь:

enter image description here

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

Моя таблица базы данных и хранимая процедура EF_UserLogin выглядит следующим образом:

use ProductCert
GO

CREATE TABLE [dbo].[UserLogin](  
    [Id] [int] IDENTITY(1,1) NOT NULL,  
    [UserName] [varchar](50) NULL,  
    [UserPassword] [varchar](50) NULL,  
    [UserEmail] [varchar](50) NULL,  
    [UserRole] [varchar](50) NULL,  
 CONSTRAINT [PK_UserLogin] PRIMARY KEY CLUSTERED   
(  
    [Id] ASC  
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]  
) ON [PRIMARY]  
GO  

-- insert data in table  
insert into UserLogin(UserName,UserPassword,UserEmail,UserRole)  
values ('admin','123456','admin@gmail.com','admin')  

-- create store procedure    
create PROCEDURE [dbo].[EF_UserLogin]   
    @UserName varchar(50)=null,  
    @UserPassword varchar(50)=null  
AS  
BEGIN  

    SET NOCOUNT ON;  

    SELECT  UserName,UserPassword,UserEmail,UserRole from UserLogin where UserName=@UserName and UserPassword=@UserPassword  
END  

Что я уже сделал:

  1. Я уже добавляю модель ADO. NET в проект, который называется ProductCertEntities

Может кто-нибудь помочь мне в этом, я не знаю, с какими проблемами я сталкиваюсь (ToT).


ОБНОВЛЕНИЕ

Код, как показано ниже:

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var identity = new ClaimsIdentity(context.Options.AuthenticationType);

            ProductCertEntities obj = new ProductCertEntities();
            var userdata = obj.EF_UserLogin(context.UserName, context.Password).FirstOrDefault();
            if (userdata != null)
            {
                identity.AddClaim(new Claim(ClaimTypes.Role, userdata.UserRole));
                identity.AddClaim(new Claim(ClaimTypes.Name, userdata.UserName));
                context.Validated(identity);
            }
            else
            {
                context.SetError("invalid_grant", "Provided username and password is incorrect");
                context.Rejected();
            }
        }
...