2014-10-02 88 views
0

我打算使用ASP.NET Web Api制作一个宁静的Web服务。许多ASP.NET MVC Web应用程序和可能的本地应用程序都将使用该服务。该服务将使用ASP.NET身份来授权请求​​/用户。我可以通过为每个请求传递一个令牌来看到如何使用本地应用程序的服务。通过调用外部ASP.NET Web Api服务验证ASP.NET MVC Web应用程序中的用户

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

这是我想要的,可能吗?

  • 用户没有登录,重定向到登录页面
  • 用户提交表单这就要求MVC控制器应用
  • 控制器使得Web服务
  • Web服务返回的调用用户的ID,名称和角色(JSON也许?)
  • 这就是我卡住的地方:ASP.NET MVC Web应用程序随后将用户标记为登录整个MVC Web应用程序。该角色将用于任何控制器/操作的任何授权属性。 ASP.NET MVC Web应用程序还可以通过cookie记住用户,并将来自动登录。
+0

不是什么大问题,但它是ASP.NET MVC,而不是ASP MVC。 – 2014-10-03 01:01:31

+0

谢谢,我已经纠正它 – Connel 2014-10-03 07:29:16

+0

我认为你在做什么是可能的。当MVC应用程序从webapi调用获得肯定/肯定的响应时,请在MVC应用程序的控制器的操作中设置一个cookie。但是您可能需要考虑取消cookie并在webapi端设置一些东西,例如生成的令牌,然后在MVC应用程序的每个请求上使用此令牌来检查授权。有点解决方案的单一标志的前兆。 – 2014-10-03 09:07:42

回答

0

要设置你只需要饼干:

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

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

相关问题