小编msk*_*msk的帖子

将所有Web API请求路由到一个控制器方法

是否可以自定义ASP.NET Web API的路由机制,以将所有请求路由到一个控制器方法?

如果有请求进来

www.mysite.com/api/products/
Run Code Online (Sandbox Code Playgroud)

要么

www.mysite.com/api/otherResource/7
Run Code Online (Sandbox Code Playgroud)

所有这些都将被路由到我的SuperDuperController的Get()方法?

asp.net asp.net-web-api-routing asp.net-web-api2

12
推荐指数
2
解决办法
5149
查看次数

向其他人提供一个Web API转发请求的最佳方法

我有一些Web服务在不同的服务器上运行,我希望有一个Web服务在其余的"前面"运行,以决定应该根据标头值转发请求的Web服务(服务器).

这个想法是客户会发送请求,比如说:

http://api.mysite.com/cars
Run Code Online (Sandbox Code Playgroud)

mysite.com上的API将检查请求,从API密钥中提取信息(在标头中提供)并重定向到适当的服务器,例如

http://server4.mysite.com/api/cars
Run Code Online (Sandbox Code Playgroud)

这会起作用吗?我担心如何将响应(w/data)从"server4"返回给客户端.响应是仅返回给第一台服务器还是客户端实现响应?

asp.net asp.net-web-api asp.net-web-api2

10
推荐指数
2
解决办法
1万
查看次数

根据ASP.NET Core中请求标头中提供的API密钥授权用户

我正在尝试重写我目前在ASP.NET Core中为ASP.NET 4.6提供的一些授权.

我知道Authorization已经发生了一些变化,我发现很难在ASP.NET Core中实现我非常简单的auth策略.

我的要求:

对服务器的每个请求都应包含一个名为"key"的标头.根据该密钥的值,我将能够查询数据库并检查该密钥是代表普通用户还是管理员用户.如果请求不包含有效密钥,则不会授权该请求.

我将如何在ASP.NET Core中实现它?我发现的每一个例子对我的需求来说都显得过于苛刻.

在ASP.NET 4.6中,我使用自己的自定义AuthorizeAttributes在我的控制器上使用,例如

[User]
public IHttpActionResult DoSomethingOnlyUsersCanDo() {}
Run Code Online (Sandbox Code Playgroud)

[Admin]
public IHttpActionResult DoSomethingOnlyAdminsCanDo() {}
Run Code Online (Sandbox Code Playgroud)

我可以在ASP.NET Core中执行相同的操作吗?

authorization asp.net-authorization asp.net-core asp.net-core-identity

10
推荐指数
1
解决办法
6366
查看次数

swagger.json 不会根据部署时的代码更改进行更新

当我将代码部署到服务器时,我遇到了 Swagger UI(或特别是 swagger.json 文件)未更新的问题。如果我转到 Swagger UI 页面,服务器会向我提供旧版本的文档。

一切都在本地运行,因此问题肯定与部署过程或 IIS 有关。

关于可能导致此问题的原因以及如何修复它有什么想法吗?

我已经尝试过以下方法:

  • 删除并重新生成Web API生成的XML注释文件
  • 重新启动服务器上的 IIS 站点
  • 删除站点中的所有文件并重新部署
  • 多次重新部署

(将 Swashbuckle 用于 .NET Framework,而不是 .NET Core)

.net swagger swashbuckle

8
推荐指数
1
解决办法
1万
查看次数

选择整数的前N个数字

我有一个SQL Server表(“活动”),该表的列包含ID,例如“ 10553100”。这是活动ID,由两部分组成->前4位数字指示它属于哪个项目,后4位数字指示哪个子项目。

我需要从activityId列中提取项目编号(又名前4位数字)。是否可以使用SQL中的简单SELECT语句执行此操作?

sql sql-server

3
推荐指数
1
解决办法
9132
查看次数

MS Access:没有为一个或多个必需参数给出值

我正在尝试对 MS Access 数据库运行以下查询(从 .asp 页面):

SELECT firstname, lastname, emp_id FROM employees ORDER BY firstname
Run Code Online (Sandbox Code Playgroud)

但是,我收到一条错误消息

没有为一个或多个必需参数给出值。

现在,如果我排除“emp_id”(主键)字段,查询运行正常。我已确保该字段存在并且查询中没有拼写错误。

如果我通过 MS Access GUI 运行查询,则会弹出一个窗口,要求我为 emp_id 字段输入“参数值”。这可能就是它不起作用的原因,以及为什么会发生这种情况?

从数据库获取员工:

Function GetEmployees()

    Dim employeesRS, sqlGetEmployees, employeesList, e

    Set employeesList = CreateObject("System.Collections.ArrayList")

    sqlGetEmployees = "SELECT firstname, lastname, emp_id FROM employees ORDER BY firstname"

    Set employeesRS = db.connTb.execute(sqlGetEmployees) 'Custom class to simplify db-querying

    While Not employeesRS.EOF

        Set e = new Employee

        e.Firstname = employeesRS("firstname")
        e.Lastname = employeesRS("lastname")
        e.Id = employeesRS("emp_id")

        employeesList.Add(e)

        employeesRS.MoveNext
    Wend

    employeesRS.Close

    Set GetEmployees …
Run Code Online (Sandbox Code Playgroud)

vbscript ms-access asp-classic

2
推荐指数
1
解决办法
1万
查看次数

How to round up to closest .5 using C#

Working with a time clocking system a lot of the hours clocked end up looking like this:

0.266666666666.

Now, I want to round up all the numbers to the "next .5 value", such that 0.2666666666 becomes 0.5.

Examples:

1.4 => Should become 1.5
1.45 => Should become 1.5
1.466666666 => Should become 1.5
1.0 => Should remain 1.0
1.6 => Should become 2.0
Run Code Online (Sandbox Code Playgroud)

The numbers need to always be rounded up.

I would be very grateful for any help on …

c# math function

1
推荐指数
1
解决办法
3615
查看次数