我编写了下面的代码来阻止用户从组开发中使用 API 操作。我想知道是否有一种方法可以阻止组中的用户访问特定方法(例如 put、delete)并且只允许组中的用户使用 get 方法?
<choose>
<when condition="@(context.User.Groups.Any(g => g.Name == "dev"))">
<return-response>
<set-status code="403" reason="Unauthorized" />
<set-body>Users in group dev do not have access to this method.</set-body>
</return-response>
</when>
</choose>
最佳答案
<set-variable name="isAccessible" value="@(context.User.Groups.Any(g => g.Name == "dev") && context.Request.Method==PUT)" />
<choose>
<when condition="@(context.Variables.GetValueOrDefault<bool>("isAccessible"))">
<return-response>
<set-status code="403" reason="Unauthorized" />
<set-body>Users in group dev do not have access to this method.</set-body>
</return-response>
</when>
</choose>
PS:未测试
关于azure - 是否可以在azure api管理中阻止用户使用api操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71547743/