我正在尝试使用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.是否存在我缺少的配置设置?
windows-authentication visual-studio-2010 visual-studio iis-express
我正在创建一个网站,但在数据库中我使用Windows身份验证.
我知道您使用它进行SQL身份验证
<connectionStrings>
<add name="NorthwindContex"
connectionString="data source=localhost;
initial catalog=northwind;persist security info=True;
user id=sa;password=P@ssw0rd"
providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
如何修改它以使用Windows身份验证?
我有一个在Windows 2003服务器上的IIS 7下运行的.NET 3.5应用程序,并且在我继续提示登录时无法使集成的Windows身份验证正常工作.我已将IIS身份验证设置为在IIS中启用,并禁用所有其他安全类型,并且我的应用程序web.config文件身份验证/授权设置为:
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="3.5" />
<authenticationmode="Windows"/>
<authorization>
<deny users = "?" />
</authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)
通过这种设置,我期待Windows用户的场景验证背后允许访问和拒绝匿名用户.但是,当我尝试访问该站点时,我得到的是Windows登录弹出窗口.
我已经解决了这个问题几天了,无法解决问题.基于具有类似问题的帖子,我确认我的URL不包含任何句点,仔细检查我的IE设置是否设置为启用集成Windows身份验证,还将我的URL添加到我的Intranet站点,但仍然获得弹出窗口.
为了进一步排除故障,我在IIS中启用了匿名身份验证并修改了我的web.config文件,然后添加了Response.Write(System.Security.Principal.WindowsIdentifity.getcurrent().user.name.toString() )尝试查看身份验证中使用的用户.我得到的结果是IIS APPPOOL\myapp,它显然是我的应用程序的IIS应用程序池.
我真的很感激任何人都可以提供的任何帮助,所以我仍然只使用Windows身份验证,但没有获得弹出窗口,并且Windows身份验证是针对实际的Windows用户执行的.
谢谢.
进一步排除故障后的其他说
只是注意到当登录失败并再次显示Windows登录提示时,它显示尝试登录为"SERVERNAME"\"USERNAME"的用户名,这使我相信它正在尝试验证用户对服务器的对比域.为了确认这一点,我直接在应用服务器上创建了一个本地用户帐户,其用户名和密码与网络域用户相同,并尝试再次登录.结果是我再次收到登录提示,但是当我输入用户名和密码时,我能够成功登录.网络用户和应用服务器位于同一个域中,因此实际上不确定为什么IIS身份验证指向本地应用服务器帐户而不是域帐户.我知道这是一个IIS问题,所以发布在forums.iis.net上,但感谢任何人可能有任何建议,因为已经解决了这几天.
我在Visual Studio 2013中调试时试图获取Windows用户名.我只是使用:
httpcontext.current.user.identity.name
Run Code Online (Sandbox Code Playgroud)
如果我在我的开发服务器上运行它,它工作正常,如果我在任何以前版本的Visual Studio上以调试模式运行它也可以正常工作.
我的问题是 - 如果我在visual studio 2013上运行它,我会得到一个空字符串.
我的网络配置如下.
<system.web>
<authentication mode="Windows"/>
<identity impersonate="false"/>
<authorization>
<allow users="*"/>
</authorization>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
</system.web>
Run Code Online (Sandbox Code Playgroud) web-config windows-authentication iis-express visual-studio-2013
我在我公司的IIS7内部网站上使用Windows身份验证而没有模拟.
在IIS7下,使用这些设置用于访问包含我的Web应用程序的文件夹的帐户是什么?
它是IIS_IUSRS吗?还是网络服务?还是另一个我不知道的?
在尝试为我的Web Api项目启用owin和AspNet Identity(在VS 2013 + .Net 4.5.1中)后,我在每个有效或无效(请求到无存在的控制器)请求中收到以下错误:
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
No OWIN authentication manager is associated with the request.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace>
at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.SuppressDefaultAuthenticationChallenges(HttpRequestMessage request) at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.<SendAsync>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Web.Http.HttpServer.<SendAsync>d__0.MoveNext()
</StackTrace>
</Error>
Run Code Online (Sandbox Code Playgroud)
当我在调试模式下检查时,也没有处理任何异常!我也意识到Configuration
在Startup
课堂上永远不会被调用(实际上从未被调试器捕获过).这是启动代码:
[assembly: OwinStartup(typeof(bloob.bloob.Startup))]
namespace bloob.bloob
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
Run Code Online (Sandbox Code Playgroud) 所以我使用Intranet模板创建了一个新的ASP.NET MVC项目.web.config包含适当的值(例如<authentication mode="windows"/>
).
如果我使用VS网络服务器启动Web应用程序,它看起来都很好 - 页面显示我的Windows域和用户名以及所有内容.但是,这适用于Opera和Safari以及IE和FF,它告诉我它根本不使用Windows身份验证(因为据我所知,这在除IE/FF之外的任何浏览器中都不起作用).
下一步是通过本地IIS使其工作.我创建一个指向www.mysite.mydomain到127.0.0.1的hosts文件条目.因此,在IIS中,我创建了一个绑定到www.mysite.mydomain的网站,并启用Windows身份验证并禁用匿名身份验证.
我已设置IE和FF以启用Windows身份验证,如下所示:
IE
FF
将"www.mysite.mydomain"放入network.automatic-ntlm-auth.trusted-uris配置设置.
但是当我在IE/FF中拨打www.mysite.mydomain时,我会收到登录提示.有趣的是,即使我在这里输入我的Windows登录信息,它仍然会失败并再次向我显示登录提示.
我们这里没有活动目录,但我的理解是它应该可以正常使用本地帐户.
我想不出我需要做的任何其他事情.有什么建议?
编辑:我们最近切换到使用Active Directory,问题仍然存在.
编辑:当我取消登录提示时,我将进入"IIS 7.5详细错误"页面,其中包含以下信息:
HTTP错误401.2 - 未经授权由于身份验证标头无效,您无权查看此页面.**
iis asp.net-mvc ntlm windows-authentication http-status-code-401
我正在运行MVC3和Windows身份验证Web应用程序.当我部署到IIS6时,它运行良好,直到我点击需要身份验证的页面.然后,当我在我的应用程序中没有跟踪它并且我的web.config配置为windows auth时,它会自动重定向到/ Account/Login.
有任何想法吗?
这是我的整个web.config文件:http://pastie.org/1568510
asp.net-mvc iis-6 windows-authentication sharp-architecture asp.net-mvc-3
这适用于不属于AD域的Windows Server 2008上的IIS 7.我想密码保护一个网站,人们必须输入用户名/密码(例如一个Windows帐户)来查看网站.然后,该网站将使用其自己的身份验证方法(表单)来处理用户帐户并决定是否显示成员特定页面等.
使用IIS6,我们只是禁用了匿名访问并启用了集成的Windows身份验证.IIS7的行为有所不同,当我输入windows用户名/密码来查看该站点时,该站点出现正常但重定向到登录页面.登录后,该网站会自然地运行.我需要能够在不登录网站凭据的情况下浏览网站.
我不认为启用匿名访问在这里是有意义的,因为我希望访问该网站受密码保护(当您第一次导航到URL时弹出用户名/密码对话框).
任何帮助表示赞赏!
我正在阅读有关如何在IIS 7上为我的Web应用程序设置Windows身份验证的内容.在描述中,他们将窗口身份验证作为IIS中的一个选项.
我为我的机器启用了Windows身份验证(我使用的是Windows 7 Professional 64位),我仍然认为它不是我的Web应用程序的身份验证选项之一.为什么?
iis-7 ×4
asp.net ×3
asp.net-mvc ×3
iis ×2
iis-express ×2
.net ×1
iis-6 ×1
ntlm ×1
owin ×1
web-config ×1