我越来越沮丧地进行身份验证。通常我会使用我不熟悉的术语,所以回答者会误解我的问题。它没有帮助事实,这是许多实现的情况。需要通过连接到数据库的WCF服务对用户进行身份验证
所以,现在我将尝试解释围绕我的项目的事实和要求,以便我可以找到一个好的解决方案的指针。
我将有一个包含我需要的信息的数据库。包含在这个信息中的将是密码的用户名和盐味散列。该数据库将连接到将数据提供给其他前端项目的WCF Web服务。
其中一个前端项目是一个asp.net MVC 3网站,用户将使用该网站登录等。现在这个项目中的默认值是某种SQlMembership,在这种情况下这个SQlMembership不正确,因为这个站点没有连接到数据库(它甚至可能不是MSQL数据库)。
下面是我看到的实现,但无法完全确定如何正确使用。
1)在MVC项目中编写我自己的MembershipProvider,以查询WebService进行验证。在这里,我的意思是说,它只是调用一些方法来满足所有需求。不喜欢它的安全问题,客户端解决方案。
2)使用服务端MembershipProvider的Validata,但然后我必须发送userName密码与每个操作,并且出于安全原因我不能存储密码。
3)然后我发现了一个名为WCF authenticationService http://msdn.microsoft.com/en-us/library/system.web.applicationservices.authenticationservice.aspx的东西,它似乎是我需要的,但我在理解它的工作原理时遇到了问题。我不想成为我的服务的一部分,但它似乎是一个专门的服务。也没有真正解释它如何进行身份验证(我需要基于我的表进行自定义身份验证,而不是为我创建的某个默认表)。这里有一个文章Should authentication be in a separate service for wcf?,我也不知道如何解决。
WCF身份验证服务可以为我提供正确的工具吗?
对于不懂asp.net,web或服务术语的人,你能回答吗?
编辑
这里是一个解决方案,我所期待的,但不能肯定是否存在。
WCF服务公开了在服务中定义的MembershipProvider,RoleProvider,ProfileProvider。
在隶属\提供商\下的MVC web.config中添加MembershipProvider与端点一起添加到服务。与RoleManager等相同
因此,当我在MVC项目中调用MembershipProvider来验证用户时,它会自动调用服务并在那里检查并在发生Authorize属性时自动检查服务中的RoleProvider。
然而,我也想限制服务调用本身,即使它们在[Authorized]属性方法中,它可能不会在引用Web服务的其他客户端中如此。如果当一个来自网站的呼叫服务会自动访问forms.authentication cookie,会很喜欢。
你有没有想出一个解决这个问题?我正走向相同的轨道...... –