我正在構建一個asp.net mvc web api應用程序,並不確定如何執行會員資格。角色提供者/會員資格?如何在asp.net web api中?
在我目前的項目我有這個
我自己Users Table
和Role Table
我不使用asp.net成員,因爲它帶來太多的行李,不適合我要怎麼設計我的數據庫(相信我能來它,但它只是似乎想太多的工作)
一個user
可以有許多角色和role
可以有很多用戶。
我使用EF來完成我對數據庫的幾乎所有調用。
在過去的項目中,我自己創建了Authorize Attribute
我自己調用了哪些數據庫,並檢查了用戶是否處於該控制器/操作方法允許的正確角色。
通過不做任何會員供應商,我失去了一些內置功能,如User.IsInRole
。我仍然能夠使用User.Identity.Name
,但我認爲這是因爲我設置了cookie。
什麼是現在在asp.net mvc 4/web api中最好的做法?
雖然使用谷歌搜索,我發現「SimpleMembership」,但還沒有讀取太多。
在旁註中,如果我對用戶進行了身份驗證,是否可以使用User.Identity.Name
與我的webapi?
User.Identity.Name如何在asp.net webapi中設置?在以前的mvc 3應用程序中,我在自定義授權屬性中使用了:httpContext.User.Identity.Name,然後使用我自己的服務層和該名稱來查找用戶具有的權限。我可以使用httpContext.User.Identity.Name,因爲我認爲這是由Cookie設置的嗎? – chobo2
是的,您可以擁有自定義授權屬性,並將'Thread.CurrentPrincipal'設置爲相應的用戶。看看我使用Basic身份驗證使用成員資格提供程序編寫的示例實現:http://stackoverflow.com/a/11536349/29407在此示例中,我使用了自定義委派處理程序,但是如果您使用授權過濾器也想要。 –
很酷,這是非常有幫助的。但有幾個問題。爲什麼是異步?爲什麼你必須註冊處理程序(我沒有和User.Identity被填充,但我沒有做異步),爲什麼填充角色在不知道如何訪問它們。 – chobo2