2

我對ASP.NET MVC很新穎,我試圖構建一個使用MVC 5內置授權方法的網站。基於ASP.NET MVC角色的單獨頁面授權5

這是我到目前爲止已經完成:

  1. 造就了一批在AspNetUsers表用戶。
  2. 在AspNetRoles表中創建了許多角色。
  3. 通過連接RoleID和UserID,通過AspNetUserRoles表爲用戶分配角色。

現在,建立一個單頁只顯示特定內容的用戶與管理員角色,並隱藏它,否則,我已經做到了這一點:

@if(User.IsInRole("Admin")) 
{ 
    <p>You are logged in as an admin.</p> 
} else 
{ 
    <p>You are not logged in as an admin.</p> 
}; 

這行做,或者這是不好的?我已經玩了很長時間了,並且它按預期工作(據我所知)。

我知道我可以創建CustomAuthorizationAttributes並將它們分配給Controller中的ActionMethods,但我對此的語法並不完全熟悉。

+0

似乎好吧。將是非常有限的,如果你在多個地方做,你將有高代碼維護。考慮爲角色名稱創建一個常量集合,這樣您至少可以重命名它們,或者在將來如果需要時可以輕鬆更改它們:) –

回答

1

如果您對語法感到滿意,這很好。

但是你不能忘記使用Authorize屬性來保護視圖本身。您可以使用默認如下

[Authorize(Roles = "Admin")] 
public ActionResult Register() 
{ 
... 
return View(); 
} 
+0

好吧,但是如果他不是管理員,那麼這不會將用戶發送到登錄頁面? – Scopperloit

+0

是的,默認是這樣,但是這可以通過任何你想要的方式輕易地改變。 鏈接到基頁的轉到頁的集合 默認轉到頁 ... –

+0

啊,我明白了。謝謝 :) – Scopperloit