为 Windows 表单或 WPF 独立应用程序实施 ASP.NET 表单身份验证和授权

Implementing ASP.NET Forms Authentication and Authorization for Windows Forms or WPF standalone application

我想为我的 Windows 表单或与 ASP.NET WCF(和 SOAP)Web 服务通信的 WPF 应用程序实施 ASP.NET 表单身份验证和授权过程。

我使用 Fiddler 调查了 Silverlight 如何在 login/logout 过程中与其 WCF RIA 服务 Web 服务进行通信,据我所知,这种通信只是一组 POST 和 GET HTTP 调用。

据我了解,实际的身份验证和授权是通过 ASP.NET 成员资格和角色提供程序在 WCF 服务端发生的 - 我知道如何通过代码处理。

我不确定的是 类 的最高级别 System.Net 集及其实现 ASP.NET 表单身份验证和授权的方法WinForms/WPF 应用程序和 ASP.NET WCF(/ 如果可能还有 SOAP)Web 服务,登录后通信会话保持活动状态,ASP.NET service/app cookie 在这里和那里传输尽可能对我透明(没有太多低级 C#/.NET Framework 编程的 IOW)。 System.Net.WebClient 是否足以执行我的任务?您知道任何现成的简单开源 C# 解决方案吗?

几年前我就写过博客

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) 或实现一个自定义登录表单,该表单仅将 username/pwd 发送到服务器并获取 cookie,然后使用它。

从技术上讲,要让 wcf 服务受到表单 cookie 的保护,您需要注意几个关键元素,所有这些都在我的博客条目中进行了描述。