2017-09-15 37 views
-2

我很新的.NET核心和C#編程如果聲明網頁基於Windows身份驗證

我已經使用腳手架的數據庫結構索引/添加/編輯/刪除視圖。

我想基於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> 
} 

但這顯然不起作用。它總是使用其他。

沒有其他人有想法嗎?

我不想創建一個用戶表,我發現大多數解決方案都依賴於我想要的東西相當簡單:)。謝謝

+0

爲什麼「顯然不起作用」? 「User.Identity.Name」顯示什麼? – mayu

+0

當我在網站中使用User.Identity.Name時,它顯示正確的用戶名「ManEng」。 – pulpetti

回答

0

如果在User.Identity.Name == "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"

+0

對不起,用戶名應該是通用的。用戶是ManEng,所以我想只有用戶ManEng有權訪問編輯。如果這是有道理的。 User.Identity.IsAuthenticated如果我使用這將不會給每個人的訪問? – pulpetti

0

當您使用User.Identity.Name我不得不把域在第一,但該域必須有\而不只是\這我有。

感謝您的回答。

相關問題