是否可以自定义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()方法?
我有一些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 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
当我将代码部署到服务器时,我遇到了 Swagger UI(或特别是 swagger.json 文件)未更新的问题。如果我转到 Swagger UI 页面,服务器会向我提供旧版本的文档。
一切都在本地运行,因此问题肯定与部署过程或 IIS 有关。
关于可能导致此问题的原因以及如何修复它有什么想法吗?
我已经尝试过以下方法:
(将 Swashbuckle 用于 .NET Framework,而不是 .NET Core)
我有一个SQL Server表(“活动”),该表的列包含ID,例如“ 10553100”。这是活动ID,由两部分组成->前4位数字指示它属于哪个项目,后4位数字指示哪个子项目。
我需要从activityId列中提取项目编号(又名前4位数字)。是否可以使用SQL中的简单SELECT语句执行此操作?
我正在尝试对 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) 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 …
asp.net ×2
.net ×1
asp-classic ×1
asp.net-core ×1
c# ×1
function ×1
math ×1
ms-access ×1
sql ×1
sql-server ×1
swagger ×1
swashbuckle ×1
vbscript ×1