0

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

4

1 回答 1

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 身份验证对用户进行身份验证。它将发回一个 auth cookie,然后您可以如上所述检查未来的服务调用。请参阅http://msdn.microsoft.com/en-us/library/bb386582.aspx

我相信可以使用 json 调用身份验证服务。请参阅如何在没有 ASP.NET 的情况下从 json 客户端调用 .NET AuthenticationService

于 2012-06-16T12:49:58.563 回答