Como ligar parâmetros de método no atributo personalizado
Eu tenho um atributo personalizado chamado AuthoriseAttribute cujo construtor se parece com isso:
public AuthoriseAttribute(int userId)
{
.. blah
}
Isso é usado com um método chamadoGetUserDetails()
como isso:
[Authorise(????????)]
public UserDetailsDto GetUserDetails(int userId)
{
.. blah
}
No tempo de execução, a presença do atributo Authorize faz com que algum código de autorização seja executado, o que requer o ID do usuário. Obviamente, isso pode ser extraído do parâmetro doGetUserDetails()
método, mas isso significa que o código de autorização depende do parâmetro do método receber um nome específico.
Eu gostaria de poder passar o valor real douserId
parâmetro no atributo, para que o código de autorização funcione com o valor passado para o atributo (ou seja, não o parâmetro do método), cujo nome é conhecido.
Algo parecido com isto (o que não funciona):
[Authorise(userId)]
public UserDetailsDto GetUserDetails(int userId)
{
.. blah
}
É possível uma coisa dessas?