针对WCF成员身份服务验证ASP.Net网页

时间:2011-11-24 13:47:06

标签: asp.net wcf asp.net-membership wcf-security

我有一个用ASP.Net制作的网页和另一套工具,如WPF,Windows Forms应用程序。强制要求ASP.Net网页和所有应用程序集对同一ASP.Net成员资格提供程序数据库进行身份验证。

我想知道的是使用使用ASP.NET成员资格提供程序进行身份验证的WCF服务进行身份验证的最佳方法。是否已经开箱即用于针对WCF身份验证服务验证ASP.NET网页?我必须实现自定义提供程序?因为ASP.NET网页中的成员身份使用用户信息填充IPrinciple User属性,并且我希望WCF服务身份验证具有相同的行为。

1 个答案:

答案 0 :(得分:2)

自定义成员资格提供程序是我之前完成此操作的方式。它工作得很好。我的团队犯了一个错误,就是让wcf服务与会员提供者的界面相匹配,这是不必要和混乱的。如果您选择这条路线,我建议您根据需要自行制定服务合同,并实施您的服务提供商以消费它。

如果我再次这样做,我根本不会使用wcf,而只是使用会员提供商(现有的或自定义的,根据您的需要)为asp.net应用程序直接与数据库而不是wcf层,并且有一个共享程序集,其他工具可以使用它直接与数据库对话。甚至在wcf服务层中有共同的代码。我不认为使用服务确实提供了很多你只能使用通用程序集无法获得的服务。无论如何,asp.net会员提供商将会是独立的。

这假设您处于一个可以让桌面工具连接到数据库的环境中。如果这是一个互联网部署的场景,你可能需要通过某种服务来做到这一点,并且wcf是一个很好的候选者。但是,使用现有的成员资格提供程序并在数据库之上构建wcf服务可能是一条较短的路径,而不是构建使用wcf服务的成员资格提供程序。我认为做后者并不是一个糟糕的选择,但你可能会比前者更好。当然,这取决于很多因素。