使用Web服务和Javascript进行身份验证

时间:2014-01-29 22:24:00

标签: asp.net web-services forms-authentication

我正在构建一个包含所有HTML控件的小型Web应用程序,并使用javascrip和webservices来完成我的所有工作。

现在我需要将登录身份验证添加到我的应用程序中。通常我会使用服务器端代码轻松完成此任务。

       FormsAuthentication.SetAuthCookie(strUSername, createPersistentCookie)

但我需要使用纯粹的Javascript和Webservice调用来实现这一点。

       function Autheticateuser(strUser,strPwd)
       {
          Webservice.AuthenticateUser(strUser,strPwd,SetAuthentication,FailAuthentication)
       }

但是由于Javascript不安全,任何人都可以在浏览器上操作它。如何使其安全并远离服务器端代码。

1 个答案:

答案 0 :(得分:1)

  

Web服务调用在javascript中处于打开状态,任何恶意脚本都可以轻松调用它来尝试用户名和密码的组合来打入系统。

表单身份验证控制器与Web服务没有太大区别。它需要来自具有id /密码的匿名用户的表单帖子并返回cookie。这可以通过脚本轻松调用。这就是为什么要为身份验证构建安全措施(在多次尝试失败后锁定)的原因。

您不希望将Cookie与Web API服务一起使用。最简单的方法是研究MVC5 SPA应用程序或Web API 2.0身份验证。这些随Visual Studio 2013和.NET 4.5一起提供。 Web服务内置了OAuth令牌支持,这是对Web服务进行身份验证/授权的正确方法。您可以使用早期版本的MVC来完成,但需要获得外部库以支持OAuth。

This是进入网络API安全的好视频。