2010-08-03 78 views
0

我有一个c#应用程序,它定义了在Asp.Net MVC应用程序中使用的成员资格提供程序。 而我有一个Apache的httpd服务器,与mod_wsgi进行身份验证。在apache python脚本中使用c#

目标是在两者之间共享成员资格提供者,以便认证信息相同。

我该如何实现这种行为?

回答

1

平凡。

  1. Apache提供静态内容。

  2. 某些URI将被路由到mod_wsgi到Python。

  3. 然后,Python将执行(通过subprocess)一个C#程序,提供命令行参数,并从C#程序读取标准输出响应。

  4. Python不需要其他任何必需的服务网页。

这假定您的C#应用​​程序在命令行运行,读取命令行参数并将其结果写入标准输出。这是一件容易的事情。它可能不是它今天的工作方式,但是从命令行运行的任何程序都很容易集成。

您的C#应用​​程序BTW也可以重写为Python。这不是魔术。这只是代码。阅读代码,理解代码并翻译代码。用更简单的方式替换C#会让你感到高兴。

+0

会员提供商由我实施。我需要它在一个asp.net应用程序中使用。我想要实现的是认证信息在apache和asp.net应用程序中是相同的。 – fampinheiro 2010-08-03 10:13:47

+0

@fampinheiro:“我的会员提供者是由我实现的”然后,将它改写成Python非常容易。只要**基础数据**在C#和Python提供者之间是相同的,那么您就是ASP.Net和Python应用程序将匹配的。代码不一定是一样的,只是数据必须同意。 – 2010-08-03 10:19:29

0

几种方法:

  1. COM接口(如Windows操作系统),虽然这将是一个有点慢(做一个COM兼容库,regasm注册它,使用它)。
  2. 使用的Gearman(如果不是COM以及是否有Python和C#支持更快不能确定,调查是由你)http://gearman.org/
  3. 使用美国洛特
  4. 描述的方法,使用SOAP(慢,大)
+0

是的,我在窗口,但COM知识== 0.齿轮人员需要看看它。对于如此简单的事情,SOAP太多了。 – fampinheiro 2010-08-03 10:15:12

+0

您不必拥有COM知识。你只需为你的类创建一个接口,不要使用复杂的数据类型,不要使用复杂的数据类型,坚持int,字符串和浮点数,为你的类和方法分配GUID,用regasm注册它,然后在使用COM初始化的对象时,它应该是Python语法。还没有用过Python,但是如果PHP允许COM类的实例化,为什么Python不能呢? 互联网充满了如此多的简单教程,如何注册.NET中制作的COM类。谷歌,它,你的恐惧将消失。 – AlexanderMP 2010-08-03 10:18:48