こんにちは私はローカルホストからのリクエストを自動的に承認できるようにするカスタム承認フィルターを作成しようとしています(これは私のテストに使用されます)。
Asp.netで次のものを見つけましたが、asp.netコアへの移植に問題があります。
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext.Request.Url.IsLoopback)
{
// It was a local request => authorize the guy
return true;
}
return base.AuthorizeCore(httpContext);
}
}
これをasp.netコアに移植するにはどうすればよいですか?
ローカルホストからのリクエストを自動的に承認できるミドルウェアを作成できます。
public class MyAuthorize
{
private readonly RequestDelegate _next;
public MyAuthorize(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext httpContext)
{
// authorize request source here.
await _next(httpContext);
}
}
次に、拡張メソッドを作成します
public static class CustomMiddleware
{
public static IApplicationBuilder UseMyAuthorize(this IApplicationBuilder builder)
{
return builder.UseMiddleware<MyAuthorize>();
}
}
そして最後にそれをstartupConfigure
メソッドに追加します。
app.UseMyAuthorize();
Asp.NetCoreにはIsLoopback
プロパティがありませんでした。これの回避策は次のとおりです https://stackoverflow.com/a/41242493/233798
ミドルウェア について詳しくはこちらもご覧ください