我想为与Windows WCF(和SOAP)Web服务通信的Windows窗体或WPF应用程序实现ASP.NET窗体身份验证和授权过程。
使用Fiddler我在登录/注销过程中调查了Silverlight如何与其WCF RIA Services Web服务进行通信,并且据我所知,这种通信只是一组POST和GET HTTP调用。
据我所知,实际的身份验证和授权通过ASP.NET成员资格和角色提供程序在WCF服务端进行 - 我知道如何通过代码来处理它。
我不确定的是什么是最高级的System.Net类集及其在WinForms / WPF应用程序和ASP之间实现ASP.NET Forms身份验证和授权的方法。 NET WCF(和/如果可能还有SOAP)Web服务,登录后通信会话保持活动状态,尽可能透明地传输ASP.NET服务/应用程序cookie(IOW没有太多低级别的C#/ .NET)框架编程)。 System.Net.WebClient能够很好地实现我的任务吗?您知道任何准备使用简单的开源C#解决方案吗?
答案 0 :(得分:1)
多年前我在博客上发表了
http://www.wiktorzychla.com/2010/04/aspnet-forms-authentication-sharing-for.html
http://www.wiktorzychla.com/2008/02/clickonce-webservice-and-shared-forms.html
我们的想法是共享表单身份验证cookie,以便wcf服务也受其保护。这样,您甚至可以在浏览器中运行应用程序(clickonce)或实现一个自定义登录表单,只需将用户名/密码发送到服务器并获取cookie然后使用它。
从技术上讲,要使用表单cookie保护wcf服务,您需要处理几个关键元素,所有这些都在我的博客条目中描述。