用于创建用户的REST会话工作流

时间:2014-11-02 08:30:54

标签: c# asp.net-mvc rest asp.net-web-api

我正在开发一个C#WebApi / MVC项目,该项目具有相当大的工作流程,用于创建用户并放置所需信息。 涉及大约10个主要步骤,从技术上讲,用户可以花费数小时来填写。

第一步采用标准基本信息,如用户名,密码,电子邮件,姓名,地址等。

我想要做的是在第一步成功之后,发送一个休息调用,在user表中创建基本用户,然后准备一个会话,以便在填写任何字段时进一步执行接下来的步骤,它将自动发送ajax调用并更新数据库中的字段。

虽然理论上使用会话这一切听起来很容易和简单,我可以在MVC中做,但我想在WebApi中使用REST来实现这一点,其中REST应该是STATELESS。

是否有人遇到类似的问题,如果有的话,他们建议采用什么方法?我目前可以想到的选项是:

- 为此过程删除REST标准MVC,并将WebAPI仅用于Read而不是Writes,因为唯一的Write过程是用户/帐户的初始创建。

- 使用身份验证令牌?但是,这可以成功处理这个过程吗?

- 创建用户后,将每个REST调用的用户名/密码作为WebAPI的身份验证?将用户/密码存储在MVC会话中并直接从MVC调用API,移动应用程序只会将用户名/密码存储在应用程序中并调用WebAPI(我认为这是最合适的)

有人能告诉我这些选项是否是最佳做法,或者是否有人有更好的最佳实践/流程?我希望尽可能多地编写一些内容来覆盖Web和Mobile,而不是必须复制进程。

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

我会考虑修改常规的WebAPI OWIN寄存器流程。

  1. 收集基本用户信息并通过Ajax发布到Web API。如果成功 - 将OWIN令牌发送回HTTP头中的调用者。
  2. 继续前进     用户信息更新的步骤(例如通过HTTP PUT)并放入     验证头中的令牌。使用标记WebAPI更新过程     授权属性。
  3. blog post可以帮助设置WebAPI以发布和接受承载令牌。