Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
.NET ADFS声明感知web应用程序在收到有效令牌时返回到客户端浏览器的cookie是什么?_.net_Iis 7_Saml_Adfs - Fatal编程技术网

.NET ADFS声明感知web应用程序在收到有效令牌时返回到客户端浏览器的cookie是什么?

.NET ADFS声明感知web应用程序在收到有效令牌时返回到客户端浏览器的cookie是什么?,.net,iis-7,saml,adfs,.net,Iis 7,Saml,Adfs,当客户端浏览器首次(通过POST)向web应用程序提供有效的SAML令牌时,应用程序将处理该令牌并返回身份验证cookie 此cookie是从表单身份验证返回的标准ASPXAUTH cookie,还是表示/包含SAML令牌 如果是后者,那么IIS上的.NET web应用程序的标准ADFS设置中是否有一个配置,允许在验证初始令牌后切换到ASPXAUTH 这样做会有缺点吗?作为登录过程的一部分,一旦收到并接受令牌,就会调用s方法: 正如您所看到的,它正在编写某种形式的令牌,并适当地序列化为cooki

当客户端浏览器首次(通过POST)向web应用程序提供有效的SAML令牌时,应用程序将处理该令牌并返回身份验证cookie

此cookie是从表单身份验证返回的标准ASPXAUTH cookie,还是表示/包含SAML令牌

如果是后者,那么IIS上的.NET web应用程序的标准ADFS设置中是否有一个配置,允许在验证初始令牌后切换到ASPXAUTH


这样做会有缺点吗?

作为登录过程的一部分,一旦收到并接受令牌,就会调用s方法:

正如您所看到的,它正在编写某种形式的令牌,并适当地序列化为cookie。其中包含的内容取决于某些选项,例如,可能会影响存储的内容。如果启用此选项,则是的,我相信SAML令牌存储在cookie中

那么,存储了什么cookie呢?这取决于.CookieHandler正在做什么。默认情况下,这是最终(同样是默认情况下)将上述方法调用传递的二进制blob拆分为多个较小的blob,并将其存储在一系列cookie中,格式为
FedAuth1
FedAuth2
,等等

IIS上.NET web应用程序的标准ADFS设置中是否有配置,允许在验证初始令牌后切换到ASPXAUTH


据我所知不是这样。

这样做会有好处吗?我想不出有什么现成的方法-为什么你想要这个选项?主要是因为SAML令牌可以变得相当大,我们希望支持移动设备。对于移动数据的使用/传输速度而言,往返整个令牌可能有点奢侈,尤其是在低质量的网络上。我认为你下面的回答为我们提供了一条途径,谢谢。因此,如果我正在开发一个本机iOS移动应用程序,我必须为一组n个cookie实现cookie处理,而不是一个命名cookie?@JamesWalford-是的,你需要容纳多个cookie。我希望iOS会有某种组件(比如.NET)来为您处理这项工作,但iOS离我通常的盖章地点还有很长的路要走,所以我没有得到任何建议。
public void WriteSessionTokenToCookie(SessionSecurityToken sessionToken)
{
    //Error checking omitted
    byte[] buffer = handler.WriteToken(sessionToken);
    SessionSecurityTokenCacheKey key = new SessionSecurityTokenCacheKey(this.CookieHandler.Path, sessionToken.ContextId, sessionToken.KeyGeneration);
    DateTime expiryTime = DateTimeUtil.Add(sessionToken.ValidTo, base.FederationConfiguration.IdentityConfiguration.MaxClockSkew);
    handler.Configuration.Caches.SessionSecurityTokenCache.AddOrUpdate(key, sessionToken, expiryTime);
    this.CookieHandler.Write(buffer, sessionToken.IsPersistent, sessionToken.ValidTo);
}