作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据这个article ,Azure Functions 可以有一个由函数执行触发的属性:
internal class AuthorizeAttribute : FunctionInvocationFilterAttribute
{
public override async Task OnExecutingAsync(FunctionExecutingContext executingContext, CancellationToken cancellationToken)
{
var request = (HttpRequest)executingContext.Arguments["req"];
var user = await AuthorizationHandler.ValidateRequestAsync(request, executingContext.Logger);
if (user != null)
{
request.HttpContext.User.AddIdentities(user.Identities);
}
else
{
request.HttpContext.Response.StatusCode = 401;
await request.HttpContext.Response.Body.FlushAsync();
request.HttpContext.Response.Body.Close();
throw new UnauthorizedException();
}
}
[Authorize]
[FunctionName("SampleFunction")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "sample")] HttpRequest req,
ILogger log, ClaimsPrincipal user)
{
...
}
这可以让我们在执行函数之前创建一些安全检查。
遗憾的是,所有示例均适用于 Azure Functions v1-v3,并使用不同的语法。
新的 Functions 语法有些不同:
[Authorize]
[Function("GetData")]
public async Task<HttpResponseData> GetData(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "data1")] HttpRequestData req,
FunctionContext executionContext, ClaimsPrincipal claimsPrincipal)
{
...
}
使用 Microsoft.Azure.Functions.Worker
函数,未触发属性。
您能给我一些关于如何修改代码以创建预执行检查的提示吗?
最佳答案
谢谢user1672994 。将您的建议作为答案发布以帮助其他社区成员。
.NETisolated还支持中间件注册,同样使用类似于ASP.NET中存在的模型。
ConfigureFunctionsWorkerDefaults扩展方法有一个重载,可让您注册自己的中间件。
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults(workerApplication =>
{
// Register our custom middleware with the worker
workerApplication.UseMiddleware<MyCustomMiddleware>();
})
.Build();
关于c# - 如何在 .Net 5 中将 Azure 函数过滤与 FunctionInitationFilterAttribute 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68774218/
根据这个article ,Azure Functions 可以有一个由函数执行触发的属性: internal class AuthorizeAttribute : FunctionInvocation
根据这个article ,Azure Functions 可以有一个由函数执行触发的属性: internal class AuthorizeAttribute : FunctionInvocation
我是一名优秀的程序员,十分优秀!