是否可以在两个Web应用程序之间共享相同的身份验证信息?

时间:2015-05-19 16:58:03

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

我有两个项目。一个是ASP.NET Mvc,另一个是Web API。

主要项目是Mvc。但我需要将请求重定向到Web API。关于它的所有帖子都明确指出,为了重定向到另一个项目,它应该是Redirect到URL:

return Redirect("http://localhost:54270/"); //This calls the Get action in the Web API

但问题是我在Mvc中使用身份验证,我想在被调用的Web Api Action中进行验证。 有可能吗?

会话不一样,所以我无法检索此信息。有没有办法在两个运行站点之间共享相同的Context?或者这是错误的做法?

1 个答案:

答案 0 :(得分:0)

是的,可以做到。在webforms中,您可以将键设置为哈希值到多个应用程序中的相同键。只要它们位于同一个域中,您就必须这么做。我没有在MVC中尝试过,但内部结构非常相似。这有点像kludge,但效果很好。

通过这种简单的方式,您无法共享信息,只能共享高级会话信息。由于我在MVC中没有玩过这个,你可能需要设置MAC设置或类似设置才能使它工作。我没时间看这个。当我发现这个工作时,开发人员仍在思考ASP世界,所以他们在Session对象中有一大堆垃圾我们不得不同步。你不应该有这个问题。

此方法不会共享会话的内容,但如果您正确使用MVC,这不应该是一个问题。

如果您想超越此范围,可以通过多种方式设置单点登录机制。任何适用于ASP.NET webforms的东西都应该在MVC中运行,尽管你可能不得不为通常不会在MVC中设置的webforms中添加一些代码。

如果你想深入了解它的工作方式,我会查看人们如何在ASP和ASP.NET中共享状态,因为这些页面通常有更多的信息。