Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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
C# 获取IIS中禁用Windows授权的Windows用户凭据_C#_Asp.net_Iis - Fatal编程技术网

C# 获取IIS中禁用Windows授权的Windows用户凭据

C# 获取IIS中禁用Windows授权的Windows用户凭据,c#,asp.net,iis,C#,Asp.net,Iis,是否可以在IIS中未启用windows身份验证的情况下获取用户的windows凭据(即用户名)?禁用windows身份验证后,下面的代码返回NT AUTHORITY或IIS APPPOOL\ASP.NET v4.0,具体取决于是否启用了模拟和匿名身份验证 System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString(); 我正在将使用表单身份验证的asp.net web应用程序转换为自定义身份验证。基本上,如果用户是从

是否可以在IIS中未启用windows身份验证的情况下获取用户的windows凭据(即用户名)?禁用windows身份验证后,下面的代码返回NT AUTHORITY或IIS APPPOOL\ASP.NET v4.0,具体取决于是否启用了模拟和匿名身份验证

System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
我正在将使用表单身份验证的asp.net web应用程序转换为自定义身份验证。基本上,如果用户是从网络外部连接,我会强制进行凭据检查,而如果他们是从网络内部连接,我希望能够获取他们的windows用户名。当我打开windows身份验证时,内部部分工作,但在网络外部测试时,我会得到弹出的登录框。我需要禁用非本地连接的windows身份验证,或者了解如何在禁用windows身份验证的情况下获取windows用户名。有什么建议吗?(我想到的另一种选择是将应用程序分为两个部分,每个部分都有单独的身份验证模式,但我希望避免这种情况)

-我也尝试过:

System.Web.HttpContext.Current.User.Identity.ToString();
System.Threading.Thread.CurrentPrincipal.ToString();
简单的答案是否定的

最好的解决方案是创建两个站点。一个用于使用windows身份验证的内部用户,一个用于使用AD进行身份验证的外部用户。默认情况下,您可以使用户始终转到外部站点,然后根据其IP重定向。这就是将intranet用户重定向到内部用户。

使用Active Directory联合服务实际上(某种程度上)可以做到这一点。如果windows用户来自网络内部,可以将其配置为使用其帐户详细信息。对于外部用户,可以将他们重定向到需要他们登录的页面


不过。这是一项非常繁重的任务,而且实施起来非常困难,实际上只适用于有资源使用这种解决方案的企业解决方案。否则,我会说使用2站点方法。

我觉得我需要使用2站点方法,只是希望有另一种解决方案。谢谢你的回复。