您提供的2个选项不是互斥的,用户名/密码验证是一个消息验证机制。其目的是为发送消息的用户提供凭据。
TransportWithMessageCredential是一种传输级别的加密方式,例如您使用SSL对传输级别进行加密,并将消息中的用户凭证嵌入其中。
成员&角色提供者是用于验证用户传递的凭据的方式,它看起来像这样。
<serviceBehaviors>
<behavior name="myCustomBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
membershipProviderName="MembershipProvider" />
</serviceCredentials>
</behavior>
</servicebehaviors>
<system.web>
<membership defaultProvider="MembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="MembershipProvider" type="MyApp.AP.SimpleSqlMembershipProvider, MyApp.AP" connectionStringName="APServer" applicationName="/MyApp" />
</providers>
</membership>
</system.web>
现在你可能会使用自定义的用户名密码验证,看起来像这样
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType=
"MyApp.SL.CustomUserNameValidator, MyApp.SL"/>
因此,使用用户名/密码在消息层的认证是使用不同的(和独立)用户名/密码作为认证机制。希望这有助于你理解概念
感谢您的精彩总结!我已经实施了第二种方案,因此我现在坚持这一点,但对未来很了解。 – 2010-01-18 19:54:43