使用WCF服务的Asp.Net Web应用程序身份验证

使用WCF服务的Asp.Net Web应用程序身份验证,asp.net,wcf,forms-authentication,membership-provider,Asp.net,Wcf,Forms Authentication,Membership Provider,我有一个WCF服务,可以对用户进行身份验证。与WCF身份验证服务不同,我希望所有身份验证(包括来自asp.net web应用程序的身份验证)都发生在WCF服务层 现在,我的问题是,我应该为web应用层的身份验证定义成员身份提供程序吗。 或者,如果应用程序使用表单身份验证来根据active directory对用户进行身份验证,我将在Web层使用active directory成员资格提供程序 按照我的逻辑,因为我希望WCF服务能够对来自不同应用程序的用户进行身份验证,所以我将在服务层定义成员资格

我有一个WCF服务,可以对用户进行身份验证。与WCF身份验证服务不同,我希望所有身份验证(包括来自asp.net web应用程序的身份验证)都发生在WCF服务层

现在,我的问题是,我应该为web应用层的身份验证定义成员身份提供程序吗。 或者,如果应用程序使用表单身份验证来根据active directory对用户进行身份验证,我将在Web层使用active directory成员资格提供程序

按照我的逻辑,因为我希望WCF服务能够对来自不同应用程序的用户进行身份验证,所以我将在服务层定义成员资格提供者

但是,对于哪一层负责实现成员资格提供程序,存在不同的意见

坦斯克与问候 Girija

您不能(也不应该)在WCF中为asp.net应用程序执行Windows身份验证。您也不应该让您的服务负责确定哪些身份验证使用asp.net

简而言之,您应该在应用程序级别定义身份验证机制(尽管您可以在任何级别实现它)


顺便说一句,我建议您使用已经建立的联合协议(即WIF)来处理多个应用程序之间的身份验证。

如果我使用WIF,不是所有身份验证调用(包括asp.net的windows身份验证)都会失败吗被定向到联合身份验证提供程序&然后联合身份验证提供程序决定使用哪个身份验证提供程序对用户进行身份验证。因此,在我的应用程序中,在没有WIF的情况下,不是服务在扮演联合提供者的角色吗?它将扮演这个角色,但是为什么要发明自己的协议来实现这一点呢?