2012-12-13 46 views
4

SimpleMembershipProvider可以與ApiController一起使用,還是僅適用於傳統網頁?當試圖使用它時,我收到錯誤「Membership.Provider」屬性必須是ExtendedMembershipProvider的實例。與SimpleMembershipProvider兼容的ASP.NET Web API?

如果它是兼容的,我怎麼稱呼它。 ValidateUser方法沒有像WebSecurity.Login那樣創建一個cookie?

UPDATE

我得到了一個Web API腳手架中運行以下更改後:

  1. Web.config:outcomment的system.web標籤中的默認成員&角色提供,由作爲插入Web API腳手架。

  2. 將模板InitializeSimpleMebershipAttribute從Mvc屬性更改爲System.Web.Http.Filters。屬性直接掛接到控制器,Mvc不適用於ApiController

然而,WebSecurity類混合在一起的形式認證和.Login方法附加一個cookie的http報頭。 WebMatrix.WebData公開SimpleMembershipProvider,但沒有.ValidateUser以中立的方式使用它關於認證。

SimpleMembership實際上打算與表單身份驗證一起使用嗎?我無法在網絡上找到明確的答案。

謝謝!

+0

另外,從使用舊的MembershipProvider的MVC 3模板中使用AccountController是否更好? –

+0

我不確定你的問題的validateuser部分,但這個問題可能有助於解決你的錯誤http://stackoverflow.com/questions/12408349/membership-provider-must-be-an-instance-of-extendedmembershipproider還有更多有關SimpleMembershipProvider的信息http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-形式和-ASP淨MVC -4- templates.aspx。 –

回答

1

我想我得到了答案。 See the remarks section at the end of this page

使用WebMatrix.WebData方法初始化SimpleMembershipProvider後,System.Web.Security.Membership類可用,與舊的MembershipProvider一樣。除了使用WebSecurity類進行驗證之外,還有Membership.ValidateUser可用,並且沒有將Cookie附加到http標頭。