dev*_*ate 5 c# asp.net asp.net-web-api
我正在使用Windows身份验证背后的ASP.Net Web API并使用[Authorize]属性来指定用户可以访问的控制器和函数.这非常有效.问题是我希望帮助区域仅反映用户被授予访问权限的内容.好奇,如果有人以某种方式实现了这一点.这是在控制器,App Start还是帮助控制器的级别完成的.
提前致谢...
我的一个控制器的代码片段
[Authorize]
public class TaktTimeController : ApiController
{
private BIDataContainer db = new BIDataContainer();
// GET api/TaktTime
[Authorize(Roles="Admins")]
public IQueryable<TaktTime> GetTaktTimes()
{
return db.TaktTimes;
}
// GET api/TaktTime/5
[ResponseType(typeof(TaktTime))]
[Authorize(Roles = "Admins")]
public IHttpActionResult GetTaktTime(string id)
{
TaktTime takttime = db.TaktTimes.Find(id);
if (takttime == null)
{
return NotFound();
}
return Ok(takttime);
}
Run Code Online (Sandbox Code Playgroud)
这可以在剃刀视图中实现,如下所示就是您所需要的。
@if (User.IsInRole("admin"))
{
<div>
<!--Text for admin here-->
</div>
}
@if (User.IsInRole("user"))
{
<div>
<!--Text for user here-->
</div>
}
Run Code Online (Sandbox Code Playgroud)
相同的逻辑可以用在 WebApi 控制器中
public string Get()
{
if(User.IsInRole("admin"))
{
return "Text for admin";
}
if(User.IsInRole("user"))
{
return "Text for user";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1634 次 |
| 最近记录: |