如何使用用户名和密码保护WCF Rest服务?

时间:2012-06-16 09:27:20

标签: asp.net wcf wcf-rest wcf-authentication

我是WCF的新手,我想知道如何保护WCF Rest服务。 我有一个asp.net网站,只有注册用户可以访问它,该应用程序使用托管在同一个IIS服务器上的服务,我的问题是,我如何限制使用此服务,因为只有注册用户可以使用它,知道该服务可以被许多客户端使用(Android,iPhone,...)。我可以使用哪种类型的身份验证?测试服务我创建了一个winform,我使用了HttpWebRequest。 PS:我不能使用https。 感谢

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用asp.net兼容模式。 WCF服务调用将导致用于ASP.NET页面的相同预处理,包括检查ASP.NET身份验证和会话cookie。您还可以检查HttpContext,包括httpcontext.current.user.identity.isauthenticated。如果用户未经过身份验证,则抛出异常或返回错误代码。以下是一些更多信息:http://msdn.microsoft.com/en-us/library/aa702682.aspx

因此,如果您已经为您的应用程序使用表单身份验证,并且应该在用户登录到您的应用程序后调用该服务,那么您已设置。

您还可以创建身份验证服务。该服务将允许客户端发送用户名/密码,并将使用ASP.NET身份验证来验证用户。它将发回一个身份验证cookie,然后您可以检查以上的未来服务呼叫。请参阅http://msdn.microsoft.com/en-us/library/bb386582.aspx

我相信可以使用json调用身份验证服务。请参阅How to Call .NET AuthenticationService from json client without ASP.NET