Mar*_*ark 242 windows-authentication visual-studio-2010 visual-studio iis-express
我正在尝试使用IIS Express和VS2010来托管Silverlight应用程序.我修改了我的applicationhost.config文件以允许修改正确的配置设置.我在web.config中有以下内容:
<location path="">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Run Code Online (Sandbox Code Playgroud)
我没有经过身份验证,我的域服务调用返回一个空记录作为用户.安装VS2010 SP1 BETA之后,我能够让这个工作正常,但我试图让它只与IIS Express一起使用.
如何启用Windows身份验证以使用IIS Express.是否存在我缺少的配置设置?
ror*_*ods 399
Visual Studio 2010 SP1和2012添加了对IIS Express的支持,无需编辑尖括号.

我相信这个解决方案优于vikomall的选择.
上面的基于UI的解决方案在IIS Express的applicationHost.config中使用特定于站点的位置元素,使应用程序不受影响.
更多信息请访问:http: //msdn.microsoft.com/en-us/magazine/hh288080.aspx
vik*_*all 272
选项-1:
编辑\My Documents\IISExpress\config\applicationhost.config文件并启用windowsAuthentication,即:
<system.webServer>
...
<security>
...
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
...
</security>
...
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
选项-2:
解锁\ My Documents\IISExpress\config\applicationhost.config中的windowsAuthentication部分,如下所示
<add name="WindowsAuthenticationModule" lockItem="false" />
Run Code Online (Sandbox Code Playgroud)
将所需身份验证类型的覆盖设置更改为"允许"
<sectionGroup name="security">
...
<sectionGroup name="system.webServer">
...
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
...
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
</sectionGroup>
Run Code Online (Sandbox Code Playgroud)
在应用程序的web.config中添加以下内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
以下链接可能有所帮助:http: //learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/
安装VS 2010 SP1后,可能需要应用选项1 + 2才能使Windows身份验证正常工作.此外,您可能需要在IIS Express applicationhost.config中将匿名身份验证设置为false:
<authentication>
<anonymousAuthentication enabled="false" userName="" />
Run Code Online (Sandbox Code Playgroud)
对于VS2015,IIS Express applicationhost配置文件可能位于此处:
$(solutionDir)\.vs\config\applicationhost.config
Run Code Online (Sandbox Code Playgroud)
并且<UseGlobalApplicationHostFile>项目文件中的选项选择默认或特定于解决方案的配置文件.
根据booij boy的答案,检查您是否选中了控制面板中的"Windows身份验证"功能 - >程序 - >打开或关闭 - > Internet信息服务 - >万维网服务 - >安全性的Windows功能
此外,使用firefox或Internet Explorer时似乎有很大的不同.在启用"Windows身份验证"之后,它对我有用,但仅限于IE.
除了这些出色的答案之外,在IISExpress开发环境的上下文中,为了阻止臭名昭着的"system.web/identity@impersonate"错误,您可以简单地确保applicationhost.config文件中存在以下设置: .
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这将使您在开发和测试期间具有更大的灵活性,但请确保您在此之前了解在生产环境中使用此设置的含义.
有用的帖子:
| 归档时间: |
|
| 查看次数: |
138047 次 |
| 最近记录: |