asp.net - 如何在 Web 应用程序中对调用 Web 服务的 Windows Mobile

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

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

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

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

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

我可以这样做吗,这是一个好主意吗?您可以指出我的任何代码示例/引用吗?

最佳答案

我最终得到了一些东西的组合。首先,表单例份验证在这种情况下实际上不起作用,因为当用户未登录或凭据不正确时,您会获得重定向。

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

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

我在服务器端和客户端都使用 CryptoApi。
我知道主机 header 对于安全应用程序来说有些过时了,但是由于我使用了强加密和 SSL,所以它完全足够了。

关于asp.net - 如何在 Web 应用程序中对调用 Web 服务的 Windows Mobile 客户端进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485504/

相关文章:

magento - 通过一个简单的单一产品站点使用Magento

rest - 在RESTful架构中实现类似批处理操作的最佳方法?

.net - 将.NET程序集移离应用程序基本目录?

django - 在templatetags之间传递上下文,Django

python-3.x - 从字符串生成用于加密的整数,反之亦然

spring - 如何在库的上下文中实例化 Spring?

ruby-on-rails - Rails 3发布后对Rails 2的支持

svg - 扩展Zedgraph以生产SVG

web-scraping - 刮谷歌代码搜索

asp.net - 跨子域的ASP.NET MVC session