我正在使用带有实体框架的MVC 5 / Web Api项目。我把它变成了Angular SPA项目,我想知道如何在不使用razor.cshtml的情况下提取登录的用户信息。我想根据用户角色显示/隐藏元素。我认为它需要是一个服务,拉取服务器端数据并将其转换为JavaScript?我发现了一些这样做的例子,但它们基于不使用实体框架的空MVC项目。 所以我基本上需要这样的东西,但是在Angular中
@if (User.IsInRole("Editor"))
{
<div>@Html.ActionLink("Create New", "Create")</div>
}
<div>@Html.ActionLink("Generate Report", "Report")</div>
<div>@Html.ActionLink("Other Stuff", "Other")</div>
答案 0 :(得分:1)
有很多选择,但主要是您必须将用户角色存储在客户端上。
根据您的情况,这可以存储在cookie,本地存储或Angular模型中。
恕我直言,存储在你的Angular模型中最具声明性。假设您的服务器调用已通过身份验证,您只需将用户的角色作为json的一部分返回,以填充Angular模型。