簡體   English   中英

使用 ASP.NET 成員身份保護 ADO.net WCF 數據服務

[英]Securing an ADO.net WCF data service with ASP.NET Membership

你好,

我正在使用 WCF DataServices,我正在嘗試使用 asp.net 成員資格來保護它

這是我的代碼,

<system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="SecureWSBindingWithMembershipConfig" >
          <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="None" />
            <message clientCredentialType="UserName"/>
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SecureServiceWithMembershipBehavior">
          <serviceMetadata httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="AspNetSqlRoleProvider" />
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider" />
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service name="DataService.WcfDataService" behaviorConfiguration="SecureServiceWithMembershipBehavior">
        <endpoint address="WcfDataService.svc" binding="wsHttpBinding" contract="System.Data.Services.IRequestHandler" bindingConfiguration="SecureWSBindingWithMembershipConfig" >
          <!--<identity>
              <dns value="" />
          </identity>-->
        </endpoint>
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>

我收到以下錯誤:

無法加載操作“ProcessRequestForMessage”,因為它具有 System.ServiceModel.Channels.Message 類型的參數或返回類型,或者具有 MessageContractAttribute 和其他不同類型參數的類型。 當使用 System.ServiceModel.Channels.Message 或帶有 MessageContractAttribute 的類型時,該方法不得使用任何其他類型的參數。

你可以試試這個,如果這幾乎就像你的代碼:

Method(RequestMessage request, OtherType value)

// Your message contract much like this.
[MessageContract]
public class RequestMessage {
     [MessageBodyMember]
     public OtherType { get; set; }
}

// And your new method will be
Method(RequestMessage request)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM