Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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 3.0/IIS7升级到.Net 4.0/IIS 8_.net_Asp.net Mvc_Iis 7_Iis 8_Sts Securitytokenservice - Fatal编程技术网

安全令牌服务从.Net 3.0/IIS7升级到.Net 4.0/IIS 8

安全令牌服务从.Net 3.0/IIS7升级到.Net 4.0/IIS 8,.net,asp.net-mvc,iis-7,iis-8,sts-securitytokenservice,.net,Asp.net Mvc,Iis 7,Iis 8,Sts Securitytokenservice,我已将.NET3.0项目升级为.NET4.0。要对此项目上的登录进行身份验证,用户将被重定向到具有以前URL的STS(安全令牌服务,也升级到.Net 4.0)。登录时,STS实例验证登录详细信息并重定向到给定的URL(返回到我的系统)。此STS是客户端代码,我无权访问它 在VisualStudio(2010年以后)中,这很好用。我在Visual Studio Development Server和IIS Express下运行该站点,没有任何问题(Windows 7/Windows Server

我已将.NET3.0项目升级为.NET4.0。要对此项目上的登录进行身份验证,用户将被重定向到具有以前URL的STS(安全令牌服务,也升级到.Net 4.0)。登录时,STS实例验证登录详细信息并重定向到给定的URL(返回到我的系统)。此STS是客户端代码,我无权访问它

在VisualStudio(2010年以后)中,这很好用。我在Visual Studio Development Server和IIS Express下运行该站点,没有任何问题(Windows 7/Windows Server 2012)。在本地IIS 8 Web服务器下运行此操作时,我将丢失令牌中的角色。这在7/7.5中非常有效,但在8中却不行

我想知道我是否错过了IIS 8配置中的某些内容

var claimsIdentity = Thread.CurrentPrincipal.Identity as ClaimsIdentity;
IList<string> userRoles = claimsIdentity.GetRoles();
var claimsIdentity=Thread.CurrentPrincipal.Identity作为claimsIdentity;
IList userRoles=claimsIdentity.GetRoles();
我已将上述结果附加到我的Http头(系统使用的角色相同)中,并看到不再有任何userRoles(列表为空)。但我的索赔实体有合适的用户


对于任何指针,我都会非常出色。

因此,我已设法让原始安装程序正常工作。我的安装程序依赖于“我的”旧.NET3,这就是为什么它以前不工作的原因。这位于安装程序右键单击菜单上的“启动条件编辑器”下,注意,您还需要属性上的先决条件才能具有.Net 4)。修复安装程序并使用它设置网站后,系统将正确验证。这让我相信这可能是我的配置有问题

至于它到底是什么属性,我不能说,因为比较web.configs有很多不同之处。我无法理解为什么IIS7.5可以工作,但IIS8中的web.config不能工作(相同的web.config)