gpt4 book ai didi

asp.net-core - 在 ASP.NET Core 中授权本地主机

转载 作者:行者123 更新时间:2023-12-05 03:56:12 24 4
gpt4 key购买 nike

我是 ASP.NET Core 的新手,我有一个 Controller ,我只需要在我的机器上授权它,用于测试目的,但是,拒绝其他......

我有以下配置:

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddMvc().AddJsonOptions(options =>
{
options.SerializerSettings.DateFormatString= "yyyy-MM-ddTHH:mm:ssZ";
});
services.AddAuthentication("Cookie")
.AddScheme<CookieAuthenticationOptions, CookieAuthenticationHandler>("Cookie", null);
services.AddLogging(builder => { builder.AddSerilog(dispose: true); });

在受控测试中,我启用了[Authorise] 属性

[Authorize]
public class OrderController : Controller

有没有办法让我的本地机器自动访问 Controller 的操作?类似于 [Authorize(Allow=localhost)]

最佳答案

您可以像这样创建一个 Action 过滤器:

public class LocalhostAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
var ip = context.HttpContext.Connection.RemoteIpAddress;
if (!IPAddress.IsLoopback(ip)) {
context.Result = new UnauthorizedResult();
return;
}
base.OnActionExecuting(context);
}
}

然后使用标签Localhost:

//[Authorize]
[Localhost]
public class OrderController : Controller

我相信这会起作用,限制对执行它的机器的访问。

关于asp.net-core - 在 ASP.NET Core 中授权本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59682812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com