我正在創建一個新的ASP.NET Web應用程序,我不打算利用「角色」的概念。但是,我確實想確保用戶在某些頁面上登錄。是否有任何現有的屬性只是簡單地檢查用戶是否登錄並重定向它們,或者如果它們不是?我所做的每個搜索都指向使用角色(如this one)。使用授權屬性來驗證用戶登錄
回答
[Authorize]
屬性將只能成功返回,如果發起請求的用戶登錄並且只能在控制器和操作方法上工作。
它可以用來裝飾一個特定的動作:
...或者整個控制器:
// all actions in FooController require authentication
[Authorize]
public class FooController : Controller
{
public async Task<ActionResult> FooAction()
{
}
public async Task<ActionResult> BarAction()
{
}
}
你也有Request.IsAuthenticated
它可以同時在行動和非使用動作方法:
if (Request.IsAuthenticated) //or @if in Razor
{
//request is authenticated
}
...甚至User.Identity.IsAuthenticated
as @Darko corre在他的回答中指出。我個人更喜歡Request.IsAuthenticated
而不是User.Identity.IsAuthenticated
,因爲它還爲User
和User.Identity
提供了一些有用的空值檢查。以下是如何Request.IsAuthenticated
看起來引擎蓋下:
public bool IsAuthenticated
{
get
{
return(_context.User != null
&& _context.User.Identity != null
&& _context.User.Identity.IsAuthenticated);
}
}
您可以使用User屬性,只需將if()設置爲可以控制訪問權限即可。 保護無效的Page_Load(對象發件人,EventArgs的)
{
if (User.Identity.IsAuthenticated)
{
Page.Title = "Home page for " + User.Identity.Name;
}
else
{
Page.Title = "Home page for guest user.";
}
}
你設置的web.config後,這應該工作。這裏是文檔https://msdn.microsoft.com/en-us/library/9wff0kyh(v=vs.85).aspx
問題與您的鏈接 - 它談論表單身份驗證。而問題的身份框架是關於不使用它的。雖然檢查'IsAuthenticated'的代碼部分是正確的,但其餘樣本不是 - 在MVC中沒有'Page'對象 - 您正在談論WebForms,而問題不在於WebForms。 – trailmax
沒有更多的補充,只是downvoted,因爲它與用戶的問題沒有關係,雖然它是重要的信息都是一樣的。 – maniak1982
- 1. 當用戶登錄時授予授權
- 2. Facebook用戶登錄:未經應用授權的用戶身份驗證
- 3. MVC授權屬性驗證JSON值
- 4. Firebase createUserWithEmailAndPassword不授權用戶登錄
- 5. 驗證用戶使用LDAP登錄
- 6. 驗證用戶登錄
- 7. asp.net用戶授權和驗證
- 8. MVC自定義授權屬性來驗證請求
- 9. 加載授權cookie時驗證用戶Twitter授權
- 10. 如何使用引導登錄表單來驗證django用戶
- 11. MVC 4授權和登錄使用
- 12. 如何授權用戶誰在Asp.Net MVC使用外部登錄登錄
- 13. 使用AllowAnonymous屬性使授權忽略
- 14. 獲取用於驗證用戶登錄
- 15. ASP.NET會員登錄用戶登錄時將登錄重定向爲未授權
- 16. 使用Facebook連接來授權或登錄您的網站
- 17. 如何在用戶登錄後使用AJAX驗證用戶?
- 18. .NET身份驗證授權角色登錄redirct returnURL混淆
- 19. 單一登錄身份驗證與授權
- 20. 如何使用授權和身份驗證來「鎖定」MVC?
- 21. 使用GWT中的Google帳戶授權/驗證
- 22. Xamarin.Forms:如何驗證用戶登錄?
- 23. Laravel驗證計數用戶登錄
- 24. C#Windows服務登錄驗證用戶
- 25. yii用戶登錄後頁面驗證
- 26. CakePHP登錄用戶名/密碼驗證
- 27. 登錄後重新驗證Facebook用戶
- 28. 驗證Facebook用戶沒有Facebook登錄
- 29. RESTEasy中的用戶登錄驗證java
- 30. 如何授權用戶在執行POST操作時授權失敗時登錄?
裝飾與動作的'[授權]'當用戶登錄屬性只會成功返回還有'Request.IsAuthenticated' – trashr0x
你也可以添加[。授權]屬性給整個班級。 – Anonymous
看看這個問題http://stackoverflow.com/questions/32095889/mvc-authentication-easiest-way/32096289#32096289 希望它有幫助。 –