ASP.NET Web API与SimpleMembershipProvider兼容?

时间:2012-12-13 10:11:20

标签: c# security asp.net-membership asp.net-web-api

SimpleMembershipProvider可以与ApiController一起使用,还是只用于经典网页?尝试使用它时,我收到错误“Membership.Provider”属性必须是ExtendedMembershipProvider的实例。

如果兼容,如何在不创建类似WebSecurity.Login的cookie的情况下调用。ValidateUser方法?

更新

我在以下更改后在Web API脚手架中运行它:

  1. Web.config:取消默认会员资格& {API}脚本中插入的system.web标记中的角色提供程序。

  2. 将模板InitializeSimpleMebershipAttribute从Mvc属性更改为System.Web.Http.Filters。属性直接挂钩到控制器中,Mvc不适用于ApiController

  3. 但是,WebSecurity类与表单身份验证混合,.Login方法将cookie附加到http-header。 WebMatrix.WebData公开了SimpleMembershipProvider,但没有.ValidateUser以中立的方式使用它来进行身份验证。

    SimpleMembership实际上是否打算与表单身份验证一起使用?我无法在网上找到明确的答案。

    谢谢!

1 个答案:

答案 0 :(得分:1)

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

使用SimpleMembershipProvider方法初始化WebMatrix.WebData后,System.Web.Security.Membership类可用,就像旧版MembershipProvider一样。而不是使用WebSecurity类进行验证,Membership.ValidateUser可用,并且没有cookie附加到http标头。