カスタムASP.NETMembershipProviderとRoleProviderを使用して、サービスのセキュリティを処理しようとしています。このサービスは、IISではなく、コンソールアプリで自己ホストされます。基本認証でwebHttpBindingを使用しています。プロバイダーを使用するようにserviceCredentialsとserviceAuthorizationを構成しました。プロバイダーは実際に初期化されます。しかし、WCFは私の設定を無視しているようで、ユーザーをWindowsにログインさせようとします。私はイベントログからそれを理解し、Windowsのクレデンシャルをサービスに送信することで証明しました。以下に、私の構成とデバッグのスクリーンショットを示します。なぜ認証にWindowsを使用しているのですか?たぶん、IISなしでASP.NET認証プロバイダーを使用することは不可能ですか?
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<roleManager
enabled="true"
defaultProvider="CustomRoleProvider">
<providers>
<clear/>
<add
name="CustomRoleProvider"
type="CustomRoles.CustomRoleProvider, CustomRoles"/>
</providers>
</roleManager>
<membership defaultProvider="CustomMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear/>
<add name="CustomMembershipProvider"
type="CustomRoles.CustomMembershipProvider, CustomRoles"/>
</providers>
</membership>
</system.web>
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="webHttp">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="Service">
<serviceAuthorization principalPermissionMode="UseAspNetRoles"
roleProviderName="CustomRoleProvider" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
membershipProviderName="CustomMembershipProvider" />
</serviceCredentials>
<serviceSecurityAudit auditLogLocation="Application" serviceAuthorizationAuditLevel="SuccessOrFailure"
messageAuthenticationAuditLevel="SuccessOrFailure" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="Service" name="CustomRoles.Service">
<endpoint address="http://127.0.0.1:8060" binding="webHttpBinding"
bindingConfiguration="webHttp" contract="CustomRoles.IService" />
</service>
</services>
</system.serviceModel>
</configuration>
それは私がデバッグするときに見るものです。なぜ認証にWindowsを使用しているのですか?
クレデンシャル画面http://img81.imageshack.us/img81/1289/credentials.gif