我是.NET Core和C#编程的新手
我使用了脚手架数据库结构进行索引/添加/编辑/删除视图。
我尝试根据Windows身份验证对用户进行身份验证,我知道这种身份验证工作时不同的用户打开用户名更改的页面。 (仅限内联网)
我想根据用户登录信息显示和隐藏编辑,详细信息和删除部分。
@if (User.Identity.Name == "ManEng")
{
<a asp-action="Edit" asp-route-id="@item.TrolleyId">Edit</a>
<a asp-action="Details" asp-route-id="@item.TrolleyId">Details</a>
<a asp-action="Delete" asp-route-id="@item.TrolleyId">Delete</a>
}
else {
<a asp-action="Details" asp-route-id="@item.TrolleyId">Details</a>
}
但这显然不起作用。它总是使用else。
其他人有没有想法?
我不想创建一个用户表,我找到的大多数解决方案都依赖于我想要的东西相当简单:)。感谢
答案 0 :(得分:0)
User.Identity.Name == "username"
上的if仅适用于恰好被称为“username”的用户。 User.Identity.IsAuthenticated
属性是所有经过身份验证的用户所需的属性。
@if (User.Identity.IsAuthenticated)
{
<a asp-action="Edit" asp-route-id="@item.TrolleyId">Edit</a>
<a asp-action="Details" asp-route-id="@item.TrolleyId">Details</a>
<a asp-action="Delete" asp-route-id="@item.TrolleyId">Delete</a>
}
else
{
<a asp-action="Details" asp-route-id="@item.TrolleyId">Details</a>
}
编辑:对于该特定用户,您可以使用User.Identity.Name == "ManEng"
答案 1 :(得分:0)
当你使用User.Identity.Name时,我必须把域放在第一位,但那个域必须有\而不是只有\我有。
感谢您的回答。