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的支持,无需编辑尖括号。

  1. 如果还没有,请右键单击Web风格的项目,然后select“使用IIS Express …”。
  2. 完成后,selectWeb项目,然后按F4以关注“属性”面板。
  3. 将“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.configappSettings部分。

 <add key="autoFormsAuthentication" value="false" /> <add key="enableSimpleMembership" value="false"/> 

在相同的说明 – VS 2015,.vs \ config \ applicationhost.config不可见或不可用。

默认情况下,.vs文件夹是隐藏的(至less在我的情况下)。

如果您无法find.vs文件夹,请按照以下步骤操作。

  1. 右键单击解决scheme文件夹
  2. select“属性”
  3. Attributes部分,单击Hiddencheckbox(默认未选中),
  4. 然后点击“应用”button
  5. 它会显示确认窗口“应用更改到此文件夹,子文件夹和文件”选项,点击“确定”。

    重复步骤1至步骤5,除了step 3 ,此时您需要uncheck选中之前uncheck的“隐藏”选项。

现在应该可以看到.vs文件夹。

在做完以上所有答案后,我发现我没有以Admin身份运行Visual Studio。 以Admin身份运行后,问题解决了。