当我的应用程序用户尝试浏览到我的应用程序时,他们得到http 401.错误。
我的应用程序是使用Windows身份validation的Intranet Web应用程序。 匿名身份validation和身份模拟被禁用。 一个单独的应用程序池被创build并分配给该网站。 IIS ApplicationPool \ myApplnAppPool被赋予应用程序根文件夹的读取和执行权限。
我validation了工作进程(w3wp.exe),并在服务器上的任务pipe理器中的应用程序池标识下运行。
当我给每个人(每个人域组)访问我的网站文件夹时,他们能够访问应用程序。 不过,我相信这不是在文件夹级别上给予EveryOne组访问的正确做法。
另外我的应用程序创build和更新应用程序日志文件(在应用程序根文件夹下)。
任何帮助,将不胜感激。 谢谢。
这取决于你正在使用的应用程序以及它的身份validation如何工作。 如果应用程序需要用户的凭据来实际执行任何操作,那么给每个人(包括域中的每个人,不包括客人)访问可能不是一个坏主意。
如果你想限制访问特定的人,最好的做法是创build一个组,并给他们所需的访问权限(可能是读/执行)。 例如,您也可以确保该组被拒绝访问configuration文件,并为该应用程序创build一个“支持”组,并拥有更多访问权限。
最后,无论使用什么凭证(匿名authentication只是模拟您为此目的提供的某个特定帐户),都需要读取并可能执行和遍历文件系统中的权限才能访问该网站。
从上面的评论中,如果您确实需要知道哪些特定的域用户正在访问它,则必须保持匿名auth禁用,但是如果您不需要限制对域用户子集的访问,则授予访问权限该域名每个人。
通过启用Windows身份validation和禁用匿名,你基本上说“为了访问我的网站,你必须有权访问,否则你没有进入”。 即使应用程序池可以访问,但您在网站级别阻止了该应用程序池。 这就是为什么当你给每个人访问的时候它是有效的 这听起来像你想要一个匿名网站,让应用程序自己决定什么人的权限。