代码之家  ›  专栏  ›  技术社区  ›  Watson

AspNetCompatibility WCF和WinForm

  •  2
  • Watson  · 技术社区  · 16 年前

    我希望将Windows窗体与WCF服务一起使用,并通过在WCF服务中使用aspnetCompatibilityEnabled=true来利用ASP.NET的预构建身份验证。

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

    4 回复  |  直到 16 年前
        1
  •  1
  •   Petar Kabashki    16 年前

    虽然可以将ASP.NET运行时宿主在桌面应用程序中,但这将涉及一些您需要手动执行的管道。如果要使用成员资格提供程序,还必须处理证书。

    我建议您:

    1. 根据您的系统,将其托管在IIS或以前的系统中
    2. 将其托管在cassini中,您可以从命令行手动启动/停止,也可以通过编程方式启动/停止
    3. 通过创建ServiceHost实例并手动打开它,将其宿主在Windows窗体应用程序中。
        2
  •  2
  •   marc_s MisterSmith    16 年前

    对于这个场景,我不知道开箱即用的任何内容。

    整个ASP.NET成员资格和角色系统基于一个名为“aspnetdb”的已知SQL Server数据库,该数据库为最常见的必需函数提供了一些表和存储过程,因此,没有什么能阻止您从基于WinForms的前端构建到基础数据库。

    我不知道ASP.NET成员表和例程上是否有任何官方文档-但据我所知,它们都是很容易重新设计和使用的-所以继续构建您的系统吧!

    如果你在谷歌或必应上搜索,你甚至可以找到很多文章和博文,这些文章和博文都是那些自己做过的人写的:

        3
  •  0
  •   Tanner    16 年前

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

        4
  •  0
  •   Petar Kabashki    16 年前

    如果您坚持在Windows窗体应用程序中承载HTTP运行时,最简单的方法是获取 cassini for .net 3.5 . 使用起来非常简单。它已经是一个WinForms应用程序。Cassini是Visual Studio的开发服务器。

    我已经亲自在一个网站上测试过它,它的会员设置和工作完美。 但是,如果需要它处理来自本地主机以外的请求,则需要将ipaddress.loopback更改为ipaddress.any in server.cs,如注释中所指出的。

    推荐文章