ASP.NET Core AuthorizeAttribute is just a marker containing a little data and no behavior (source). Whatever visits the attribute must contain the behavior.
What visits AuthorizeAttribute and what does it do?
ASP.NET Core AuthorizeAttribute is just a marker containing a little data and no behavior (source). Whatever visits the attribute must contain the behavior.
What visits AuthorizeAttribute and what does it do?
AuthorizeAttribute implemented IAuthorizeData interface
public class AuthorizeAttribute : Attribute, IAuthorizeData
app.UseAuthorization() middleware visits AuthorizeAttribute From endpoint metadata accroding to the source code:
var endpoint = context.GetEndpoint();
......
var authorizeData = endpoint?.Metadata.GetOrderedMetadata<IAuthorizeData>() ?? Array.Empty<IAuthorizeData>();
then it could access the scheme,policy,roles you defined when you add the Authorize attribute
You could try similar in a middleware:
app.Use(async (context, next) =>
{
var endpoint = context.GetEndpoint();
var authdata = endpoint?.Metadata.GetOrderedMetadata<IAuthorizeData>();
await next.Invoke();
});
Result: