C# 使用PostMan测试的C webapi身份验证令牌错误
我试图通过C用webapi创建一个登录身份验证令牌,并用PostMan进行了测试 这就是我所做的 C webapi 这是我的startup.cs MyAuthProvider WebApiConfig 我已经创建了数据库查询,如下所示:C# 使用PostMan测试的C webapi身份验证令牌错误,c#,api,authentication,postman,C#,Api,Authentication,Postman,我试图通过C用webapi创建一个登录身份验证令牌,并用PostMan进行了测试 这就是我所做的 C webapi 这是我的startup.cs MyAuthProvider WebApiConfig 我已经创建了数据库查询,如下所示: use [DBSecurityTest] CREATE TABLE [dbo].[UserLogin]( [Id] [int] IDENTITY(1,1) NOT NULL, [UserName] [varchar](50) NULL,
use [DBSecurityTest]
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
我已经添加了我的ADO.Net模型
错误是我调试Api时无法通过Postman测试我的令牌
我的邮递员配置如下:
use [DBSecurityTest]
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
邮资/代币
我选择Body和x.www-form-urlencoded
错误随之而来
{错误:不支持的授予类型}
是我的邮递员配置错误还是我的C api代码有问题?这是关于您的请求,当您使用邮递员发送请求时,您应该传递一个名为grant\u type的参数 OAuth框架为不同的用例指定了几种授权类型,以及创建新授权类型的框架 下面列出了最常见的OAuth授权类型 授权码 客户端凭据 设备代码 刷新令牌
欲了解更多信息,请阅读。您是否为此编写了控制器? 我认为你错过了一个控制器,因为它存储参数并处理它。您声明的方式似乎是在C WebApi后端没有处理 我想你可以参考这里的一些视频:
谢谢。Hi@user13074015,我正在处理您的视频,它成功了!让我开始关注下面的API并完成代码。谢谢
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using Microsoft.Owin.Cors;
using System.Web.Http.Cors;
namespace DBSecurityTest
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors();
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
use [DBSecurityTest]
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