0

我有一个 ASP.NET MVC 单页应用程序。页面上有一个带有提交的登录区域。单击提交时,信息将发送到 WebAPI 控制器,并在服务器上进行身份验证(ASP.NET Identity 2 和 WebAPI 2)。然后,服务器将状态 HTTP 响应发送回浏览器,以确认用户是否已通过身份验证(登录)。

现在网页更改并显示一个新的可见区域,该区域能够将 PUT 的 POST 等发送到服务器上的 WebAPI。但是,这些如何向服务器传达用户现在已通过身份验证?

4

2 回答 2

2

它(大致)与所有 Web 浏览器身份验证机制完全相同。身份验证后,服务器会创建一个 cookie,该 cookie 存储在您的浏览器中,当您发出请求时该 cookie 会传输到服务器,其中有一个令牌,上面写着“嘿,你认识我”,服务器看着它并说“是的,我做”。

于 2014-04-23T20:47:01.823 回答
2

Web 服务器将加密的身份验证 cookie 发送回网页,并且来自该页面的所有进一步请求将该 cookie 发送回服务器。

所以它看起来像这样:

// initial page request
client -> server: give me the page
server -> client: no cookie, you are anonymous, here is your page
// ajax authentication request
client -> server: here are my credentials
server -> client: ok, you are in, here is the authentication cookie
// any other request
client -> server: i want to do something, and here is the cookie 
server: [decrypts cookie] i know this guy
于 2014-04-23T20:47:05.620 回答