小编Gee*_*ten的帖子

如何从ASP.NET Core webapi中删除重定向并返回HTTP 401?

关于这个问题的答案,我默认使用以下代码添加了对所有内容的授权:

public void ConfigureServices(IServiceCollection aServices)
{
  aServices.AddMvc(options =>
  {
     var lBuilder = new AuthorizationPolicyBuilder().RequireAuthenticatedUser();

     var lFilter = new AuthorizeFilter(lBuilder.Build());
     options.Filters.Add(lFilter);
   });

   aServices.AddMvc();
}

public void Configure(IApplicationBuilder aApp, IHostingEnvironment aEnv, ILoggerFactory aLoggerFactory)
{
  aApp.UseCookieAuthentication(options =>
  {
    options.AuthenticationScheme = "Cookies";
    options.AutomaticAuthentication = true;
  });
}
Run Code Online (Sandbox Code Playgroud)

但是,当有人试图访问未经授权的内容时,它会返回一个(看似默认的)重定向URL(http://foo.bar/Account/Login?ReturnUrl=%2Fapi%2Ffoobar%2F).

我希望它只返回HTTP 401,而不是重定向.

如何在ASP.NET 5中为WebAPI执行此操作?

asp.net authorization asp.net-web-api asp.net-core

16
推荐指数
3
解决办法
8213
查看次数

Delphi中是否存在Java听众原则的等价物?

我对这个很好奇.我知道两种在Delphi中定义事件的方法,使用回调原理和windows消息原理.

但是,消息原则不是面向对象的,并且回调仅适用于一个实例.

我想为一个事件提供一个很好的解决方案,其中两个不同的对象可以在事件触发后执行操作.

在Java中,我可以简单地添加另一个监听器.

有没有人知道Delphi中这个好听众原则的任何等效方法?

java delphi events

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

不应该在对象引用设置为nil时调用Free每次调用时都会抛出一个访问冲突吗?

我从该单元获取访问权限DBXCommon.pas(在Delphi XE中).当我查看代码时,我会看到以下内容(在感叹号处):

function TDBXConnectionFactory.GetConnection(const DBXContext: TDBXContext;
  const ConnectionProperties: TDBXProperties): TDBXConnection;
var
  ConnectionBuilder:  TDBXConnectionBuilder;
  DelegatePath:       TDBXDelegateItem;
  Connection:         TDBXConnection;
  CombinedProperties: TDBXProperties;
begin
  //...
  ConnectionBuilder := TDBXConnectionBuilder.Create;
  Connection        := nil;
  try
    //..lots of setting ConnectionBuilder properties
    ConnectionBuilder.FInputPassword := CombinedProperties[TDBXPropertyNames.Password];
    Connection := ConnectionBuilder.CreateConnection;
    Connection.Open;
    Result     := Connection;
!!  Connection := nil;
  finally
!!  Connection.Free;
    ConnectionBuilder.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

但我看到这样的结构(首先分配Nil,然后是免费)DBXCommon.pas.这是一些我不知道的构造,或者每次调用这段代码这是否真的导致访问冲突?

delphi delphi-xe

7
推荐指数
2
解决办法
2146
查看次数

如何从处理/捕获的异常中获取堆栈跟踪并将其转储到跟踪日志中

我们使用Bob Swart的白皮书作为指南,创建了Datasnap服务(使用Delphi XE).它工作正常,我们已将其部署到我们的测试服务器.

现在出现问题,当我们执行大量请求(通过JMeter)时,会发生某种内存损坏.有些请求成功,有些请求因访问冲突而失败.最后,它变得如此腐败,以至于对我们的OWN(而不是DSAdmin)方法的每个请求都会响应访问冲突.

但是,我无法获取堆栈跟踪以获取更多信息,因为在处理请求时已经捕获到异常.

如果我使用此应用程序的VCL版本进行大量测试,它仍然可以正常工作.

有没有人知道这可能是什么,或遇到同样的问题,或者你能帮助我从一个被捕获的异常中获取堆栈跟踪(在别人的代码中,我无法编辑)?

提前致谢.

delphi datasnap delphi-xe

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