假设我有一个/api/shipments/100支持HTTP DELETE方法的资源(例如:).正如您可以从URI本身理解的那样,如果针对此URI发出DELETE请求,则将删除此资源.
在我当前的场景中,只有满足某个条件,才能成功执行DELETE请求,如下所示:
如果存在针对该URI的DELETE请求并且不满足上述条件,那么在这种情况下哪个HTTP状态代码更适合返回?我已经考虑过以下的但是无法确定哪一个更具语义:
假设我有以下接口和类:
public interface IFooRepo : IDisposable {
//...
}
public FooRepo : IFooRepo {
//Methods here
//Properly implement the IDisposbale.Dispose() here
}
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中使用Autofac作为IoC容器,如果我将其注册如下,我可以确定它会正确处理吗?
private static IContainer RegisterServices(ContainerBuilder builder) {
builder.RegisterType<FooService>().As<IFooService>();
return
builder.Build();
}
Run Code Online (Sandbox Code Playgroud)
或者我应该采取进一步的步骤,具体取决于我使用的应用程序类型.(在这种情况下,我使用ASP.NET MVC,但我正在考虑在WCF Web API项目和类库中使用autofac)
在SignalR .NET上,我们在客户端和服务器之间建立如下连接:
var connection = new HubConnection("http://mysite/");
Run Code Online (Sandbox Code Playgroud)
接下来,我们订阅事件并开始连接,如下所示:
connection.Start().Wait();
Run Code Online (Sandbox Code Playgroud)
如果我想在客户端和服务器之间建立安全连接怎么办?我们如何通过当前功能实现这一目标?
我注意到课堂System.Net.ICredentials上有一种属性类型HubConnection.这是这样的吗?如果是这样,我们应该如何在服务器端处理集线器的Auth?
我编写了一个自定义委派处理程序,它将自定义标题添加到响应并检查请求.
我在WebAPi配置中添加了句柄
config.MessageHandlers.Add(new customHandler());
但问题适用于所有控制器.我需要应用特定于控制器的自定义标头.是否可以添加特定于控制器的自定义处理程序?
我成功地完成了JwtSecurityTokenHandler工作X509Certificate2.我能够用一个X509Certificate2对象签署令牌.我还能够通过使用证书的原始数据通过X509Certificate2.RawData属性来验证令牌.
这是代码:
class Program
{
static void Main(string[] args)
{
X509Store store = new X509Store("My");
store.Open(OpenFlags.ReadOnly);
X509Certificate2 signingCert = store.Certificates[0];
string token = CreateTokenWithX509SigningCredentials(signingCert);
ClaimsPrincipal principal = ValidateTokenWithX509SecurityToken(
new X509RawDataKeyIdentifierClause(signingCert.RawData), token);
}
static string CreateTokenWithX509SigningCredentials(X509Certificate2 signingCert)
{
var now = DateTime.UtcNow;
var tokenHandler = new JwtSecurityTokenHandler();
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(new Claim[]
{
new Claim(ClaimTypes.Name, "Tugberk"),
new Claim(ClaimTypes.Role, "Sales"),
}),
TokenIssuerName = "self",
AppliesToAddress = "http://www.example.com",
Lifetime …Run Code Online (Sandbox Code Playgroud) 在我的HTTP API中,其中一个端点应返回一个随机生成的值,该值将与端点的经过身份验证的调用方关联.目前,我有以下结构:
GET http://example.com/random-ticket HTTP/1.1
Authorization: Basic base64-encoded-basic-auth-value
Accept: application/json
Host: example.com
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Date: Thu, 03 Oct 2013 07:25:56 GMT
Content-Length: 59
{"user-ticket":"Pfa42634e-1a2e-4a7d-84b9-2d5c46a8dd81"}
Run Code Online (Sandbox Code Playgroud)
发出GET请求以检索随机值.但是,HTTP GET调用应该是幂等的,我的上述实现不符合该规则.另一方面,我不确定是否可以使用空消息体发出HTTP POST请求.
HTTP书执行此类操作的正确方法是什么?
我在SSL网站上使用recpatcha,但我没有在某些浏览器上获取图像,因为它的ssl证书已经过期了!
https://api-secure.recaptcha.net/
如果我引用非安全链接,浏览器将发出警告消息.
那么替代方案是什么?
我在ASP.NET MVC下使用它.
无缘无故,我已经收到这个错误消息一个星期左右;
PM>安装包Elmah安装包:无法解析远程名称:'packages.nuget.org'在行:1 char:16 + Install-Package <<<< Elmah + CategoryInfo:NotSpecified:(:) [ Install-Package],WebException + FullyQualifiedErrorId:System.Net.WebException,NuGet.PowerShell.Commands.InstallPackageCommand
当我导航到浏览器中的链接时,我看到了正确的ODATA Nuget Feed.
检查了feed的fwlink url,它在浏览器上也能正常工作;
http://go.microsoft.com/fwlink/?LinkID=206669
我尝试了Manage Nuget Packages对话框,那里有同样的错误.
顺便说一下,我的内部nuget服务器工作正常.
你可以帮帮我吗?什么阻止我去packages.nuget.org?
.net visual-studio-2010 nuget nuget-package visual-studio-extensions
我有一个带有2个控制器的自主Web API:
我试图在控制器初始化期间设置格式化程序,但配置似乎是全局的,影响所有控制器:
public class CustomConfigAttribute : Attribute, IControllerConfiguration
{
public void Initialize(HttpControllerSettings settings,
HttpControllerDescriptor descriptor)
{
settings.Formatters.XmlFormatter.UseXmlSerializer = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
我想查询我的MongoDB集合而没有使用MongoDB .NET Driver 2.0的任何过滤器,但我找不到办法.我有以下解决方法,但看起来很奇怪:D
var filter = Builders<FooBar>.Filter.Exists(x => x.Id);
var fooBars = await _fooBarCollection.Find(filter)
.Skip(0)
.Limit(100)
.ToListAsync();
Run Code Online (Sandbox Code Playgroud)
有没有办法在MongoDB .NET Driver 2.0中没有过滤器的情况下发出查询?