IIS Express Windows身份validation
我正在尝试使用VS2010与VS2010托pipe一个Silverlight应用程序。 我修改了我的applicationhost.config文件,以允许修改正确的configuration设置。 我有我的web.config中的以下内容:
<location path=""> <system.webServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <windowsAuthentication enabled="true" /> </authentication> </security> </system.webServer> </location>
我没有被authentication,我的域名服务调用作为用户返回空logging。 安装VS2010 SP1 BETA后,我能够得到这个工作,但我试图让这只与IIS Express工作。
如何启用Windows身份validation以使用IIS Express。 有没有configuration设置,我错过了?
选项1 :
编辑\My Documents\IISExpress\config\applicationhost.config
文件并启用windowsAuthentication,即:
<system.webServer> ... <security> ... <authentication> <windowsAuthentication enabled="true" /> </authentication> ... </security> ... </system.webServer>
选项-2 :
在\ My Documents \ IISExpress \ config \ applicationhost.config中解锁windowsAuthentication部分,如下所示
<add name="WindowsAuthenticationModule" lockItem="false" />
将所需authenticationtypes的覆盖设置更改为“允许”
<sectionGroup name="security"> ... <sectionGroup name="system.webServer"> ... <sectionGroup name="authentication"> <section name="anonymousAuthentication" overrideModeDefault="Allow" /> ... <section name="windowsAuthentication" overrideModeDefault="Allow" /> </sectionGroup> </sectionGroup>
在应用程序的web.config中添加以下内容
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <security> <authentication> <windowsAuthentication enabled="true" /> </authentication> </security> </system.webServer> </configuration>
下面的链接可能会有所帮助: http : //learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/
安装VS 2010 SP1后,可能需要使用选项1 + 2才能使Windows身份validation正常工作。 另外,您可能需要在IIS Express applicationhost.config中将匿名身份validation设置为false:
<authentication> <anonymousAuthentication enabled="false" userName="" />
对于VS2015,IIS Express applicationhostconfiguration文件可能位于此处:
$(solutionDir)\.vs\config\applicationhost.config
并且项目文件中的<UseGlobalApplicationHostFile>
选项select缺省或特定于解决scheme的configuration文件。
Visual Studio 2010 SP1和2012添加了对IIS Express的支持,无需编辑尖括号。
- 如果还没有,请右键单击Web风格的项目,然后select“使用IIS Express …”。
- 完成后,selectWeb项目,然后按F4以关注“属性”面板。
- 将“Windows身份validation”属性设置为“启用”,并将“匿名身份validation”属性设置为“禁用”。
我相信这个解决scheme比vikomall的select更好。
- 选项#1是所有IIS Express站点的全局更改。
- 选项#2在web.config中留下了发展的余地。
- 此外,除非您按照IIS服务器的applicationHost.config上的“解锁”过程,否则可能会导致部署到IIS 7.5时出现错误。
上面的基于UI的解决scheme使用IIS Express的applicationHost.config中特定于站点的位置元素,而不会改变应用程序。
更多信息在这里: http : //msdn.microsoft.com/en-us/magazine/hh288080.aspx
根据booij男孩的回答,检查您是否在控制面板 – >程序 – >打开Windowsfunction – > Internet信息服务 – >万维网服务 – >安全性
另外,使用Firefox或Internet Explorer时似乎有很大的不同。 enabeling“Windows身份validation”后,它适用于我,但只在IE浏览器。
除了这些很好的回答,在IISExpress开发环境中,为了阻止臭名昭着的“system.web/identity@impersonate”错误,您可以简单地确保在applicationhost.config文件中有以下设置。
<configuration> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> </system.webServer> </configuration>
这样可以在开发和testing过程中为您提供更多灵活性,但要确保您理解在生产环境中使用此设置的含义。
有用的post:
在IISpipe理器中单击您的网站。 你需要在“function视图”(而不是“内容视图”)
在“function视图”的IIS部分select所谓的function“身份validation”,然后点击它。 在这里您可以启用Windows身份validation。 这也是可能的(我认为在线程中的build议之一)通过web.config(…)中的设置
但是,也许你有一个web.config你不想太多的。 那么这个线程不会太多的帮助,这就是为什么我添加了这个答案。
如果出现以下情况,此答案可能有所帮助:1)您的网站在升级到Visual Studio 2015和2之前曾经使用过Windows身份validation),而您的网站正在尝试加载/login.aspx
(即使网站上没有此类文件)。
将以下两行添加到网站的Web.config
的appSettings
部分。
<add key="autoFormsAuthentication" value="false" /> <add key="enableSimpleMembership" value="false"/>
在相同的说明 – VS 2015,.vs \ config \ applicationhost.config不可见或不可用。
默认情况下,.vs文件夹是隐藏的(至less在我的情况下)。
如果您无法find.vs文件夹,请按照以下步骤操作。
- 右键单击解决scheme文件夹
- select“属性”
- 在
Attributes
部分,单击Hidden
checkbox(默认未选中), - 然后点击“应用”button
- 它会显示确认窗口“应用更改到此文件夹,子文件夹和文件”选项,点击“确定”。
重复步骤1至步骤5,除了
step 3
,此时您需要uncheck
选中之前uncheck
的“隐藏”选项。
现在应该可以看到.vs文件夹。
在做完以上所有答案后,我发现我没有以Admin身份运行Visual Studio。 以Admin身份运行后,问题解决了。