如何验证在Web App中调用Web服务的Windows Mobile客户端

时间:2010-03-21 01:41:27

标签: asp.net web-services security windows-mobile forms-authentication

我有一个用ASP.NET编写的相当复杂的业务应用程序,它部署在托管服务器上。该站点使用表单身份验证,并定义了大约十几个不同的角色。员工和客户都是该应用程序的用户。

现在我需要为应用程序开发Windows Mobile客户端,允许从设备执行非常专业的任务集,而不是笔记本电脑上的浏览器。客户希望通过这一措施提高生产力。只有员工才能使用此应用程序。

我觉得重新使用已经存在的安全基础设施是有意义的。客户端不需要离线功能。

我的想法是将一组Web服务部署到现有站点的文件夹中,只有新角色“Web服务”才能访问,并使用表单身份验证(来自Windows Mobile 5 / .Net 3.5客户端) 。

我确实看到this question,我知道表单身份验证带来的限制。由于安全性不是我的主要动力(我使用SSL并且可以通过IP地址限制访问),而是使用现有的用户帐户和角色,我的决策树也有所不同。

我可以这样做,这是一个好主意,是否有任何代码示例/参考资料可以指向我?

1 个答案:

答案 0 :(得分:1)

我最终得到了各种各样的东西。首先,表单身份验证在这种情况下并不真正起作用,因为当用户未登录或凭据不正确时,您会获得重定向。

因为我想使用来自网络应用程序的用户帐户,所以我通过在处理服务器上的每个服务调用之前调用Membership.ValidateUser来解决这个问题。

登录客户端时,系统会提示用户输入ID和密码。我将两个加密的值存储在代理类中,并使用主机头进行每次调用时透明地传递它们,这样一旦用户登录,应用程序就不必为此烦恼了,即通过调用Login验证了一次凭证( )服务方法(仅调用Membership.ValidateUser)。

我在服务器端和客户端都使用CryptoApi。 我知道主机标头对于安全应用程序来说有些过时,但由于我使用强加密和SSL,因此它非常适合。