如何使用ASP.NET MVC和表单身份验证创建单页应用程序(SPA)?

时间:2012-10-01 12:03:47

标签: asp.net-mvc knockout.js asp.net-web-api sammy.js

我正在使用Knockout进行视图模式,使用外部模板和sammy进行路由,使用Web API从服务器获取数据。

问题是

  1. 如何使用服务器路由将用户重定向到客户端路由 例如#/ people / username的人/用户名。

  2. 对用户进行身份验证也存在很大的困惑吗?

  3. 如何在单页面应用程序中验证用户?

  4. 有些页面无需登录即可查看?如何实现?

  5. 我可以使用来自Controller的部分视图结果并在视图上获取吗?

2 个答案:

答案 0 :(得分:4)

  1. Custom Routing,但请注意,如果您必须这样做,从客户端获取数据会让您感到困惑。
  2. 应该是您习惯的相同类型的身份验证。 [Authorize]属性一如既往。
  3. 应用程序将在启动时进行授权,“单页”部分不会对此产生影响,但您必须小心检查用户在every AJAX request上的权限。
  4. authorize attribute可以放在类(控制器)级别以及方法(操作)级别,因此您可以根据需要选择它。
  5. Partial View Results and AJAX可能令人困惑。基本上,如果你想让它工作,你就是在正常条件下构建AJAX请求服务器端。
  6. 最后,你可能会试图这样做。微软的ASP.NET是一种非常厚的技术。我非常了解它,但我仍然会告诉你,我可以在许多其他技术中更快地构建单页应用程序。除此之外,根据您提出的问题类型,我得到的印象是您对ASP.NET很新,这对您来说将是一项重大挑战。

    祝你好运。并阅读this book。这是一项较旧的技术,但我从来没有找到一本更好的教学良好实践的书。史蒂夫桑德森是个天才。

答案 1 :(得分:1)

使用像sammy和服务器路由这样的url路由,通过ajax加载视图并通过控制器进行身份验证。