Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 不使用SSL的WCF中的安全性_.net_Asp.net Mvc 3_Wcf_Iis_Wcf Security - Fatal编程技术网

.net 不使用SSL的WCF中的安全性

.net 不使用SSL的WCF中的安全性,.net,asp.net-mvc-3,wcf,iis,wcf-security,.net,Asp.net Mvc 3,Wcf,Iis,Wcf Security,我使用WCF服务开发了一个MVC web应用程序 例如,我有一个服务url作为http://localhost/abcservice/method1. 我正在使用basichttpbinding服务 在我的控制器中,我正在添加服务引用并调用它: serviceclient a = new serviceclient(); a.method1(); 我调用此服务时未使用任何身份验证 出于好奇,我有一个问题: 是否可以在不购买SSL证书的情况下保护IIS中承载的WCF服务 是否可以通过从客户端发送

我使用WCF服务开发了一个MVC web应用程序

例如,我有一个服务url作为http://localhost/abcservice/method1. 我正在使用basichttpbinding服务

在我的控制器中,我正在添加服务引用并调用它:

serviceclient a = new serviceclient();
a.method1();
我调用此服务时未使用任何身份验证

出于好奇,我有一个问题:

是否可以在不购买SSL证书的情况下保护IIS中承载的WCF服务

是否可以通过从客户端发送用户名和密码并对其进行身份验证来实现身份验证功能


如果是,如何进行?任何帮助都将不胜感激,因为大多数链接将使用证书重定向以确保安全。

以下是一些接近您要求的链接:

以下是一些接近您要求的链接:

由于WCF是无状态的,您将需要一个相当复杂的读取非平凡解决方案。如果不提供代码,我会这样做:

有一个包含当前有效连接列表的DB表。您想存储用户名、有效的起始日期/时间和GUID令牌

提供一个身份验证WCF调用,以某种方式对用户进行身份验证。这可能是你最感兴趣的。您可以再次根据DB表中的有效用户列表或LDAP AD记录进行身份验证。或者你也可以通过微软护照/谷歌账户,甚至Facebook进行验证。这是你真正需要考虑的,你将如何验证。一旦你决定了,你就可以为它编码了。最简单的方法是对DB表进行身份验证,但它不是非常可移植的,需要维护该表等

如果在步骤2中对用户进行了身份验证,请为用户创建或更新有效的连接记录,为其分配一个新的GUID令牌,并设置有效的起始日期/时间,即为令牌提供一个生存期。在步骤2中返回新令牌

所有后续WCF调用都需要将令牌与用户名一起传入(如果需要)。检查令牌是否有效,如果有效,则处理WCF调用。如果没有,那么忽略这个电话或者做一些有意义的事情


正如其他答案中所述,这与SSL无关。用户身份验证是主要的编程主题。

由于WCF是无状态的,您将需要一个相当复杂的读取非平凡解决方案。如果不提供代码,我会这样做:

有一个包含当前有效连接列表的DB表。您想存储用户名、有效的起始日期/时间和GUID令牌

提供一个身份验证WCF调用,以某种方式对用户进行身份验证。这可能是你最感兴趣的。您可以再次根据DB表中的有效用户列表或LDAP AD记录进行身份验证。或者你也可以通过微软护照/谷歌账户,甚至Facebook进行验证。这是你真正需要考虑的,你将如何验证。一旦你决定了,你就可以为它编码了。最简单的方法是对DB表进行身份验证,但它不是非常可移植的,需要维护该表等

如果在步骤2中对用户进行了身份验证,请为用户创建或更新有效的连接记录,为其分配一个新的GUID令牌,并设置有效的起始日期/时间,即为令牌提供一个生存期。在步骤2中返回新令牌

所有后续WCF调用都需要将令牌与用户名一起传入(如果需要)。检查令牌是否有效,如果有效,则处理WCF调用。如果没有,那么忽略这个电话或者做一些有意义的事情


正如其他答案中所述,这与SSL无关。用户身份验证是主要的编程主题。

SSL不提供安全性,它提供了一种安全的通信媒介。因此,它不是保护谁可以调用什么函数,而是保护发送的信息是否被第三方无法读取。我们如何在WCF中实现身份验证,以限制匿名用户?阅读?是的…在一个典型的web应用程序中,我们不会使用windows凭据,会有一个登录页面,我们在其中输入用户名和密码…因此我希望wcf在尝试访问服务时限制错误的id/错误的密码。有什么帮助吗?您进行过任何搜索吗,我可以找到多篇文章SSL不提供安全性,它提供了一种安全的通信媒介。因此,它不是保护谁可以调用什么函数,而是保护发送的信息是否被第三方无法读取。我们如何在WCF中实现身份验证,以限制匿名用户?阅读?是的…在一个典型的web应用程序中,我们不会使用windows凭据,会有一个登录页面,我们在其中输入用户名和密码…因此我希望wcf在尝试访问服务时限制错误的id/错误的密码。有什么帮助吗?您进行过任何形式的搜索吗 g、 我可以找到多篇文章