if语句网页基于Windows身份验证

时间:2017-09-15 04:16:21

标签: c# asp.net-core asp.net-core-mvc .net-core

我是.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。

其他人有没有想法?

我不想创建一个用户表,我找到的大多数解决方案都依赖于我想要的东西相当简单:)。感谢

2 个答案:

答案 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时,我必须把域放在第一位,但那个域必须有\而不是只有\我有。

感谢您的回答。