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

c# asp.net-core asp.net-core-mvc .net-core

49 观看

2回复

6 作者的声誉

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

还有其他人和想法吗?

我不想创建一个用户表,我发现大多数解决方案都依赖于该表,我想要一个相当简单的方法:)。谢谢

作者: pulpetti 的来源 发布者: 2017 年 9 月 15 日

回应 2


0

338 作者的声誉

如果User.Identity.Name == "username"只有on,则仅对碰巧被称为“用户名”的用户起作用。该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"

作者: James 发布者: 2017 年 9 月 15 日

0

6 作者的声誉

当您使用User.Identity.Name时,我必须将域放在第一位,但是该域必须具有\而不是仅具有\。

感谢您的回答。

作者: pulpetti 发布者: 2017 年 9 月 17 日
32x32