我在尝试启动应用程序时收到此错误消息.
尝试确定托管应用程序的DNX进程的进程ID时发生错误
有没有办法解决这个问题?
我需要检查ConfigureServices方法当前托管环境名称是否为"开发".
所以使用IHostingEnvironment.IsDevelopment()方法对我来说可能没问题,但与Configure方法不同,我没有IHostingEnvironment env.
我正在使用ASP.NET Core应用程序.我正在尝试实现基于令牌的身份验证,但无法弄清楚如何使用新的安全系统.
我的场景: 客户端请求令牌.我的服务器应该授权用户并返回access_token,客户端将在以下请求中使用该access_token.
这里有两篇关于正确实现我需要的文章:
问题是 - 对于我来说,如何在ASP.NET Core中执行相同的操作并不明显.
我的问题是:如何配置ASP.NET Core Web Api应用程序以使用基于令牌的身份验证?我应该追求什么方向?你有没有写过关于最新版本的文章,或者知道我在哪里可以找到它?
谢谢!
c# authentication authorization asp.net-web-api asp.net-core
当我在命令行中发出以下命令时:
dotnet publish -o "./../output" -c Release
在dotnetcli正确的出版项目.但是,它不会复制appsettings.Production.json文件,只有appsettings.json.
为什么是这样?我已经google了并阅读了官方核心文档,但还没有找到正确的环境appsettings.json应该如何在发布输出中结束.
我应该appsettings.Production.json手动复制到已发布的文件夹吗?
我正在使用dotnet watch命令来运行asp.net核心项目.但是,默认情况下,它会将其Production作为一个环境.
我尝试了两种选择:
1) > dotnet watch ASPNETCORE_ENVIRONMENT=Development
2) > dotnet run ASPNETCORE_ENVIRONMENT=Development
Run Code Online (Sandbox Code Playgroud)
但它仍然把生产作为一种环境.
注意:在visual studio环境中,变量在项目属性中设置为默认情况下的开发,并从visual studio中选择该变量.
问题是:如何使用命令行在开发中运行dotnet核心项目?:
1) dotnet run
2) dotnet watch
Run Code Online (Sandbox Code Playgroud) 在Web API 2中,您曾经能够通过中间件设置OAuth授权服务器来创建端点以发出令牌,如下所示:
//Set up our auth server options.
var OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = new SimpleAuthorizationServerProvider()
};
// Sets up the token issue endpoint using the options above
app.UseOAuthAuthorizationServer(OAuthServerOptions);
Run Code Online (Sandbox Code Playgroud)
也许我错过了它,但我想弄清楚如何在ASP.NET Core中做到这一点.我查看了源代码(https://github.com/aspnet/Security),但我真的没有看到类似的东西.有没有新的方法来实现这一目标?我是否需要创建一个控制器并自己完成?
我看到如何通过中间件设置OAuth身份验证,但这涉及我从API发出声明的授权部分.
题
如何在ASP.NET Core Web应用程序中实现具有自定义成员身份的基本身份验证?
笔记
basic-authentication asp.net-core-mvc asp.net-core asp.net-core-1.0
我有一个ASP.NET Core 1.0 Web API应用程序,并尝试弄清楚如果我的控制器调用的函数错误输出异常消息到客户端.
我尝试了很多东西,但没有实现IActionResult.
我不明白为什么这不是人们需要的常见事情.如果真的没有解决方案可以有人告诉我为什么?
我确实看到了一些使用的文档HttpResponseException(HttpResponseMessage),但为了使用它,我必须安装compat shim.在Core 1.0中有没有新的方法来做这些事情?
这是我一直在尝试使用垫片,但它不起作用:
// GET: api/customers/{id}
[HttpGet("{id}", Name = "GetCustomer")]
public IActionResult GetById(int id)
{
Customer c = _customersService.GetCustomerById(id);
if (c == null)
{
var response = new HttpResponseMessage(HttpStatusCode.NotFound)
{
Content = new StringContent("Customer doesn't exist", System.Text.Encoding.UTF8, "text/plain"),
StatusCode = HttpStatusCode.NotFound
};
throw new HttpResponseException(response);
//return NotFound();
}
return new ObjectResult(c);
}
Run Code Online (Sandbox Code Playgroud)
当HttpResponseException抛出时,我查看客户端,无法找到我在内容中发送任何内容的消息.
建议的方法是将所有不安全的传入请求重定向到HTTPS.我是否需要编写中间件组件?如果是这样,我无法弄清楚如何获取服务器名称.
public class RedirectHttpMiddleware
{
RequestDelegate _next;
public RedirectHttpMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
if (context.Request.IsSecure)
await _next(context);
else
{
var server = ""; // How do I get the server name?
context.Response.Redirect("https://" + server + context.Request.Path);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我从我的项目中接受的答案中获得了这个确切的代码,我需要将其迁移到ASP.NET Core MVP中.
var env = Request.Headers.GetValues("environment").First();
Run Code Online (Sandbox Code Playgroud)
我如何在.NET Core中实现它?
我希望这不是一个重复的问题,因为我试图用新系统而不是旧系统来做这件事.如果有人在关于当前版本的链接中添加答案,我也会没事的.
编辑:http 5标题的所有类型在ASP.NET 5中消失了吗?我试过这个链接,但API可能已经改变了.我不认为这也是这个问题的重复.
asp.net-core ×10
c# ×5
.net-core ×3
asp.net ×3
dotnet-cli ×2
.net ×1
https ×1
middleware ×1
oauth ×1
publish ×1
redirect ×1