aspNetCompatibility WCF和WinForm

时间:2010-02-07 18:54:16

标签: asp.net winforms wcf compatibility

我想使用带有WCF服务的Windows窗体,并在WCF服务中使用aspNetCompatibilityEnabled = true来利用asp.net的预构建身份验证。

是否有任何可以将ASP.NET功能添加到Windows窗体应用程序的模块或预构建程序集?据我所知,此功能不是内置于Windows窗体中,无法利用。

4 个答案:

答案 0 :(得分:2)

对于这种情况,我不知道任何可用的东西。

整个ASP.NET成员资格和角色系统基于一个名为“aspnetdb”的已知SQL Server数据库,该数据库具有一些用于最常用功能的表和存储过程 - 因此实际上并没有阻止您构建基于Winforms的数据库该底层数据库的前端。

我不知道是否有关于ASP.NET成员资格表和例程的任何官方文档 - 但据我记得,它们都非常简单地重新设计和使用 - 所以继续构建你的系统!

如果您使用Google或Bing,您甚至可以从那些自己完成此操作的人那里找到相当多的文章和博文:

答案 1 :(得分:1)

虽然在桌面应用程序中托管asp.net运行时肯定是可能的,但这需要一些管道,你需要手动完成。如果您想使用会员提供者,您还必须处理证书。

我会建议您:

  1. 在IIS或WAS中托管它,具体取决于您的系统
  2. 在Cassini中托管它,您可以从命令行手动启动/停止或以编程方式
  3. 通过创建ServiceHost实例并手动打开它,将其托管在Windows窗体应用程序中。

答案 2 :(得分:0)

这一切都是可能的,因为我已经使用您所描述的场景制定了解决方案。这完全取决于配置。我的建议是针对该场景遵循此CodePlex Checklist。它包含用于配置应用程序的分步指南。它向您展示了如何设置用户存储(数据库),客户端身份验证,设置IIS,安全性等。

答案 3 :(得分:0)

如果您坚持在Windows窗体应用程序中托管http运行时,最简单的方法是获取cassini for .net 3.5的源代码。真的很容易使用。它已经是一个winforms应用程序。 Cassini是Visual Studio的开发服务器。

我已经在会员资格设置的网站上进行了亲自测试,并且运行良好。 如果您需要它来处理localhost以外的请求,则需要在Server.cs中将IPAddress.Loopback更改为IPAddress.Any,如注释中所述。