通过调用外部ASP.NET Web Api服务在ASP.NET MVC Web应用程序中验证用户

时间:2014-10-02 21:45:45

标签: asp.net asp.net-mvc web-services asp.net-web-api

我打算使用ASP.NET Web Api创建一个安静的Web服务。许多ASP.NET MVC Web应用程序和可能的本机应用程序将使用该服务。该服务将使用ASP.NET标识来授权请求​​/用户。我可以看到如何通过传递每个请求的令牌来使用本机应用程序的服务。

我的问题是使用该服务的任何ASP.NET MVC应用程序,如何在向服务发出请求后将用户标记为已登录?

这是我想要的,是否有可能?

  • 用户未登录,已重定向至登录页面
  • 用户提交在应用程序中调用MVC控制器的表单
  • 控制器调用Web服务
  • Web服务返回用户的ID,名称和角色(可能是JSON?)
  • 这就是我被困的地方:ASP.NET MVC Web应用程序然后将用户标记为登录整个MVC Web应用程序。该角色将用于任何控制器/操作的任何授权属性。 ASP.NET MVC Web应用程序还能够通过cookie记住用户,并在将来自动登录。

1 个答案:

答案 0 :(得分:0)

设置您需要的cookie:

FormsAuthentication.SetAuthCookie(USERNAME, true /*rememberMe*/);

这可以解决您的身份验证问题。授权 - 确定用户能做什么和不能做什么 - 是另一个故事。您需要缓存用户在某处的角色并根据需要进行检查。