绕过Windows身份验证

问题描述:

我有一个配置为在集成Windows身份验证模式下运行的ASP.NET Intranet应用程序。它一直工作得很好,直到最近出现需求。绕过Windows身份验证

需要什么内联网需要检查可用性检查是一种Windows服务。检查器执行的操作是访问ASP.NET页面并检查响应对象。由于Windows服务未与域用户帐户运行,它就会

The remote server returned an error: (401) Unauthorized.

我想添加一个新的asp.net页面检查器使用的,我想告诉系统不进行身份验证它。但我相信认证发生在应用程序甚至有机会查看页面之前,应用程序代码“看到”页面之前返回401错误。

我有什么选择可以得到这个?

谢谢!

约翰

+0

做了什么与你合作?我有完全相同的问题。 – Costa 2017-07-19 08:02:21

试试这个:

添加一个新的文件夹到您的网站(例如:/检查)

入/签,创建一个包含新的web.config:

<configuration> 
    <system.web> 
    <authentication mode="Windows" /> 
    <authorization> 
     <allow users="?"/> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
</configuration> 

然后,您在/ Check中访问的任何内容都不应进行身份验证。

+0

感谢您的快速响应。我试过 – John 2012-08-11 02:04:32

+0

对不起,不知道我只有5分钟来编辑我的评论。我尝试了“检查”文件夹的方法,但得到了这个错误:使用注册为allowDefinition ='MachineToApplication'的部分超出应用程序级别是错误的。此错误可能是由于虚拟目录未被配置为IIS中的应用程序。 (E:\ Root \ Intranet \ check \ web.config第3行)。 另外我想补充说,这个应用程序运行在IIS 7经典模式。 – John 2012-08-11 02:41:26

除了添加一个新文件夹,正如@GordonBell所评论的那样,您可以在根web.config文件中使用location元素。

例子:

<location path="YourFile.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
+0

是的,好点。虽然这应该是允许用户=“?”为匿名。 – 2012-08-10 20:36:27

+0

@GordonBell您的评论不够准确。 '*'表示_all users_。 '?'表示匿名用户。因此' Jupaol 2012-08-10 20:42:56