问题标签 [asp.net-web-api-helppages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-web-api - 向默认路由添加操作时,路由模板分隔符“/”不能连续出现
我有一个通过 OWIN 中间件托管的 Web API 2 项目。一切正常,我可以按预期调用我的 API。但是,我的 WebApiConfig 定义默认路由如下:
因此,我必须使用类似于以下内容的 URL 调用我的 API:/api/values/dosomething
这对我有用,直到我决定记录我的 API。为此,我首先尝试使用不起作用的WebAPI 帮助页面包。然后我想我应该试试Swashbuckle Swagger看看这是否能帮助我完全避免这个问题,但不幸的是,在这两种情况下我都遇到了同样的错误:
路由模板分隔符“/”不能连续出现。它必须由参数或文字值分隔。参数名称:路由模板
尝试了几件事后,结果发现当更改路由模板并删除{action}
部分时,错误消失了。但是,我不能真正做到这一点,因为整个项目都假定 URL 中包含操作方法名称。
所以无论如何,我想知道以下内容:
- 为什么会发生这种情况?
- 有没有办法修改这种行为?
提前致谢!
c# - 生成帮助页面 webapi2 时出错
尝试使用 MVC5 web api2 生成帮助页面时出现错误,我知道在生成项目时它会为您生成此页面,但是现在尝试单击链接时出现错误
System.StackOverflowException 未处理
错误发生在这一行formatter.WriteToStreamAsync(type, value, ms, content, null).Wait();
这就是它发生的代码。
asp.net-web-api - ASP.NET Web API 帮助页面上的空模型属性描述
介绍
我已按照本教程设置我的 ASP.NET Web API 帮助页面。
使用<package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.3" targetFramework="net452" />
文档似乎很好,但我得到了空的模型属性描述。
它们在控制器方法/端点和模型详细信息文档中都是空的。
控制器方法示例
模型属性示例
结果
我希望 FirstName 属性摘要能够填充文档上的模型属性描述。相反,描述列是空的:
有谁知道如何解决这个问题?
c# - 如何忽略从路由和操作自动生成的 asp.net web api 帮助页面中的参数
我的动作参数之一是具有 param1、param2、param3 参数的类实例(带有 [FromUri] 属性,我不能用 [FromBody] 替换它)
并且这些参数也在路由中。
当 asp.net web api 帮助页面从操作生成参数时,我在 URI 参数中得到了它们的重复项。
我怎么能忽略其中之一?
c# - ApiExplorer 无法识别自定义类型的路由属性
我有一个项目,我想在其中使用自定义类型的路由属性。我将自定义类型作为查询参数的以下代码工作正常,帮助页面显示自定义类型。
WebApi.HelpPage 提供以下文档 Help:Page
如果我更改代码以使用路由属性,结果是我得到一个空的帮助页面。
当我检查我在 HelpController.cs 中观察到的代码时,ApiExplorer.ApiDescriptions 返回一个空的 ApiDescriptions 集合
有什么方法可以让 ApiExplorer 将我的自定义类 IntegerListParameter 识别为属性路由?
c# - Web API 帮助尝试反序列化 Microsoft Azure AD Graph API 组时出错
当我尝试访问我的 Web API 2 应用程序的帮助区域时,在尝试从 Azure AD Graph API 反序列化组时,HelpPageSampleGenerator 在下面引用的代码最后一行的 WriteSampleObjectsUsingFormatter 方法中引发异常:
其他类(包括具有嵌套类的类)可以很好地反序列化。我挖掘了组的默认对象(方法调用中的“值”),我确实看到了:
由于这都是微软的代码,我不认为这是我在做的任何事情。如果我不需要,我真的宁愿不必编写自己的类来解析到 Graph API,但如果没有其他解决方法,我会这样做。
谢谢!
c# - 具有来自其他站点的交叉身份验证身份的 Web API 帮助页面
设想
我在 IIS 中有一个带有两个应用程序的站点。
主体("A")
是使用 C# 中的 Web API 2 制作的 REST 服务,它包含在带有自动生成的 Help Page 的 Areas 文件夹内("B")
。
"A"
使用标头授权,而不是表单身份验证。此刻"B"
没有任何安全感。
第二个应用程序是一个 ("C")
带有身份验证表单和登录名的 C# MVC 站点。它有一个文档链接("B")
。
目标
主要思想是登录"C"
,单击提供的链接并访问"B"
。这里的事情是这样的:如果您尝试直接在"B"
不登录的 URL 上输入"C"
,您会重定向到"C"
实际情况
所以我所做的首先是在"B"
文件中HelpController.cs
:
起初,这适用于本地主机,因为它是我 PC 中的同一个站点。所以我在 DEV 进行了部署,但当然,它没有用。
所以我正在使用这些链接:
跨应用程序的表单身份验证
如何:在 ASP.NET 2.0
machineKey 元素(ASP.NET 设置架构)中配置 MachineKey
MachineKeySection.CompatibilityMode 属性
经过大量工作和加密错误,它只能使用 32 len 密钥。其他配置无效。生成此密钥的代码是:
.NET Fiddler:生成加密的 MachineKey
所以我把这个配置放在“C”上,它就可以了!
但是,在"C"
位于 Areas\HelpPage\Views 的 web.config 中,此代码:
但没有用。我的意思是,“A”和“B”网站有效,但System.Web.HttpContext.Current.User.Identity.IsAuthenticated
总是错误的
我想我错过或混合了一些东西。我在这一点上迷路了。当我将配置放入“A”Web 配置时,一切都以 500 爆炸,因为我在 REST 服务中没有身份验证表单。
任何提示,评论,答案或问题都将受到重视,同时我仍然为此而战。提前致谢!
更新 1
调试代码,我得到这些值:
但
c# - 从 WebAPI C# 中排除 HelpPage
我需要在发布模式下排除我的 api 帮助页面我试图ApiExplorerSettingsAttribute().IgnoreApi = true
在 webapi 配置文件中添加但它没有用我们如何实现它?