Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api 基本身份验证成功后,客户端如何继续访问Resources_Asp.net Web Api_Basic Authentication - Fatal编程技术网

Asp.net web api 基本身份验证成功后,客户端如何继续访问Resources

Asp.net web api 基本身份验证成功后,客户端如何继续访问Resources,asp.net-web-api,basic-authentication,Asp.net Web Api,Basic Authentication,当浏览器客户端成功地向服务器提交用户名/电子邮件和密码,并且在下一个请求中,客户端从服务器检索数据时,如何识别已成功通过身份验证的客户端 我找到了以下信息: 用户输入凭据后,浏览器会在后续请求时在会话期间自动将凭据发送到同一域 浏览器从何处获取每个后续请求的凭据 我是否必须主动将凭据保存在某个位置?神奇的事情是如何发生的?一旦用户的凭据通过服务器的身份验证,服务器将返回一个通常称为auth token的授权令牌,它是一个由字符和数字组成的长字符串,用于标识用户已通过身份验证且有效。每次用户发送请

当浏览器客户端成功地向服务器提交用户名/电子邮件和密码,并且在下一个请求中,客户端从服务器检索数据时,如何识别已成功通过身份验证的客户端

我找到了以下信息:

用户输入凭据后,浏览器会在后续请求时在会话期间自动将凭据发送到同一域

浏览器从何处获取每个后续请求的凭据


我是否必须主动将凭据保存在某个位置?神奇的事情是如何发生的?

一旦用户的凭据通过服务器的身份验证,服务器将返回一个通常称为auth token的授权令牌,它是一个由字符和数字组成的长字符串,用于标识用户已通过身份验证且有效。每次用户发送请求时,请求数据也将包含此身份验证令牌,作为cookie或添加到请求本身中,以使服务器知道客户端是有效的。因此,每次都会对请求进行身份验证,但不会使用实际的用户名/密码凭据


根据要求,如果没有诸如银行应用程序中的活动,则可将身份验证令牌设置为在特定时间后过期。

我认为令牌身份验证是基本身份验证之外的内容。因此,令牌的使用总是与基本身份验证同时进行?第一步是基本身份验证,其中服务器检查数据库是否存在用户名/密码匹配。如果是,那么服务器将生成一个唯一的身份验证令牌,该令牌对于该特定凭证和该特定会话是唯一的-会话的长度取决于需求。从这里开始,每个请求只对令牌进行身份验证。此时,在每个步骤中传递用户名/密码只会增加额外的开销,并使系统更容易受到恶意攻击。我希望这能回答您的想法。此外,密码通常会在请求中立即加密,使用的算法只有服务器知道,并且可以解密一些示例是base64、SHA、MD5,尽管大多数示例都有自己的实现,因为解密这些示例很容易。加密/解密过程会增加一些开销。这就是为什么第一次登录时您可能会注意到加载时间稍长的原因,但一旦登录,在页面之间导航会相对更快。每一步的加密/解密都会让用户体验稍微慢一点。当我搜索基本身份验证时,http规范的目的只是希望用户名:密码在授权头中未加密,但用base64编码,方案必须是“基本”的,就是这样。现在我问自己委员会在哪里?后续请求的令牌思想来了吗?有一种称为拦截器的设计模式,例如Spring中的拦截器,通常用于提供对安全站点的访问。比如说,你输入了银行账户页面的url,会发生什么?您将被重定向到登录页面。这是因为,拦截器首先拦截该请求,并发现该请求没有关联的身份验证令牌,因此必须未经身份验证,从而将您重定向到登录页面。通常设置相同的拦截器来拦截对所有安全URL的请求。