0
我想配置AspNetMembershipProvider用於在我的WCF服務使用basicHttpBinding進行身份驗證。我有以下配置:AspNetMembership提供與WCF服務
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<bindings>
<basicHttpBinding>
<binding name="basicSecureBinding">
<security mode="Message"></security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyApp.Services.ComputersServiceBehavior">
<serviceAuthorization roleProviderName="AspNetSqlRoleProvider" principalPermissionMode="UseAspNetRoles" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider"/>
</serviceCredentials>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyApp.Services.ComputersServiceBehavior" name="MyApp.Services.ComputersService">
<endpoint binding="basicHttpBinding" contract="MyApp.Services.IComputersService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
角色已啓用且成員資格提供程序已配置(其工作於Web站點)。
但是驗證過程根本沒有被觸發。沒有卡列斯數據庫請求過程中,當我嘗試設置以下屬性的方法:
[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
public bool Test()
{
return true;
}
我收到拒絕訪問異常。任何想法如何解決它?
您如何設置身份驗證的憑據? – Tanner 2010-04-07 08:39:35
var serviceClient = new ComputersServiceClient(); serviceClient.ClientCredentials.UserName.UserName =「[email protected]」; serviceClient.ClientCredentials.UserName.Password =「administrator」; bool test = serviceClient.Test(); – Sly 2010-04-07 08:44:56