我在WebAPI
工作。我有以下两种方法将数据发送到相应的客户端。
方法的签名是
[HttpPost]
[Authorize]
public string GetMessage()
{
return "I'm a Member of StackOverflow";
}
[HttpPost]
[Authorize(Roles = "Admin")]
public string GetAdminMessage()
{
return "I'm a Member of StackOverflow since 2010";
}
请根据应该返回数据的角色,协助我如何在一个方法中使用这两种方法。
预期的骨骼结构应
[HttpPost]
[Authorize ???]
public string GetMessage()
{
return "I'm a Member of StackOverflow" + (Roles == Admin) ? "since 2010" : String.Empty;
}
答案 0 :(得分:0)
您可以使用逗号[Authorize(Roles="role1,role2")]
分隔角色。但你不需要在这种情况下发送角色。因为没有匿名角色。
[HttpPost]
public string GetMessage()
{
return "I'm a Member of StackOverflow" + User != null && User.IsInRole("Admin") ? "since 2010" : String.Empty;
}
答案 1 :(得分:0)
您可以将[Authorize]
用于特定角色和匿名角色,此外,在非属性级别的方法中使用基于角色的验证。
[HttpPost]
[Authorize]
public string GetMessage()
{
return "I'm a Member of StackOverflow" +
((this.User != null) && (this.User.IsInRole("Admin")))
? "since 2010" : String.Empty;
}