路上的菜鸟问题。
我使用 Git 站点 [https://github.com/Azure-Samples/ms-identity-aspnet-webapi-onbehalfof/tree/master/TodoListService] 中的示例为 Web APi 开发了 Azure Ad 身份验证Azure 广告身份验证问题。请在下面找到代码。
来自 Controller1 类的操作方法。
[RoutePrefix("api/hospitals")]
public class HospitalsController : ApiController
{
[Route("GetAll")]
[HttpGet]
[PmAuthorize(Constants.Roles.Admin,Constants.Roles.Doctor)]
public async Task<IEnumerable<hospitals>> GetAll()
{
//return data;....
}
}
我的 startup.auth.cs 文件
public partial class Startup
{
string clientId = System.Configuration.ConfigurationManager.AppSettings["ClientId"];
string redirectUri = System.Configuration.ConfigurationManager.AppSettings["RedirectUri"];
static string tenant = System.Configuration.ConfigurationManager.AppSettings["Tenant"];
string authority = String.Format(System.Globalization.CultureInfo.InvariantCulture, System.Configuration.ConfigurationManager.AppSettings["Authority"], tenant);
public void ConfigureAuth(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = tenant,
TokenValidationParameters = new TokenValidationParameters { SaveSigninToken = true, ValidAudience = "clientid" }
});
}
}
WebApiConfig.cs
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Filters.Add(new ExceptionHandlingAttribute());
}
}
每当我通过传递令牌从医院控制器调用操作方法/api方法调用时,都会收到错误为“此请求的授权已被拒绝”。
有人可以在这里帮助我吗?
如果需要任何附加信息,请添加任何评论?
提前致谢。