2011-05-23 153 views
1

我正在使用客户端应用程序服务进行客户端(WPF)身份验证,并且ASP.Net成员身份正常运行。但是,在服务器上,我有额外的MVC查询,我必须从客户端调用它们时进行身份验证。在查看可用的Membership.ValidateUser调用时,我无法看到这对我有什么帮助,因为我需要验证每个呼叫。客户端应用程序服务 - 来自WPF客户端的身份验证

我假设坚持[Authorize]对每个MVC电话是第一步。

我可以得到一个安全令牌,或者为CookieContainer提取一个cookie,或者我只是在这里误解了一些东西?

+0

当您说[验证]您的意思是[授权]权利。 “我有额外的MVC查询,我必须从客户端调用它们时进行身份验证”。谁是客户? WPF应用程序本身? – Chandermani 2011-05-23 14:01:22

+0

谢谢,修正应用。是的,它是客户端的WPF应用程序。 – Harry 2011-05-24 18:36:11

回答

0

我假设你是ASP.Net MVC网站,WCF服务托管在相同的虚拟应用程序和ASP.Net兼容模式中。
如果您正在使用WPF通过调用Web服务请执行下列操作

在服务器端

  • 实现代码做认证

  • 来验证用户身份验证成功之后 创建表单身份验证Cookie 并将其添加到响应Cookie 集合。

在客户端

  • 客户端类,您正在使用 连接到认证服务 应该包含一个静态的CookieContainer类的实例。
  • 一旦认证成功, 成功添加收到的cookie到 这个cookie容器,并将其传递给每个后续请求。

因此,所有对ASP.Net MVC应用程序或任何服务的请求都将包含cookie,并且用户将自动获得授权。检查this blog post样本
希望这会有所帮助。

+0

好东西,谢谢。 – Harry 2011-05-29 12:13:35

+0

这是否与客户端应用程序服务集成在一起?我的意思是为什么当我们已经有客户端应用程序服务的ValidateUser方法时,单独的登录方法返回一个cookie? – Harry 2011-05-29 12:16:36

+0

博客文章就是一个例子。当你在CAS上调用ValidateUser时,它会向http头添加一个验证cookie,并且会在所有后续请求上传递 – Chandermani 2011-05-29 15:21:00