我正在ASP.NET MVC 3 Beta中创建一个Intranet站点,并且只想使用Windows身份验证.另外,我想在VS2010中使用Visual Studio开发服务器.
我修改了默认的web.config文件以删除对表单身份验证的所有引用并切换到:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
但是,当我启动我的网站并获得默认页面时,我得到了这样的答复:
HTTP/1.1 302 Found
Server: ASP.NET Development Server/10.0.0.0
Date: Tue, 02 Nov 2010 14:05:19 GMT
X-AspNet-Version: 4.0.30319
Location: /Account/Login?ReturnUrl=%2f
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 145
Connection: Close
Run Code Online (Sandbox Code Playgroud)
这会在我的浏览器中显示此消息:
'/'应用程序中的服务器错误.
无法找到该资源.
说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.请查看以下网址,确保拼写正确.
请求的URL:/帐户/登录
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.1版本:4.0.30319.1
如果我在"使用Visual Studio开发服务器"下的项目属性中选择"NTLM身份验证",那么我在connect上正确获得此回复:
HTTP/1.1 401 Unauthorized Server
ASP.NET Development Server/10.0.0.0
Date: Tue, 02 Nov 2010 14:07:37 GMT
Content-Length: 1211
WWW-Authenticate: NTLM
Run Code Online (Sandbox Code Playgroud)
但是当我进行身份验证时,我得到了302
我认为这只是清除一些默认值但不确定("/ Account/Login"不会出现在我的web.config文件中的任何地方).如果我删除"拒绝"部分,那么事情就可以正常工作,除非我没有得到经过身份验证的校长并且有效地保持匿名.
我相信这曾经在ASP.NET MVC 2和VS2008中工作,只需将身份验证模式更改为Windows,但它似乎不再以这种方式工作.
我知道我可能遗漏了一些基本的东西.谢谢!
注意 …
我正在开发一个ASP.Net MVC 3应用程序,我有一个用户表来存储用户名和密码.我创建了一个额外的ADUsername(存储Active Directory的域/用户名).
我正在尝试执行以下操作:
从Intranet运行应用程序的用户不应该看到登录页面.应自动接收其域/用户名,并与ADUsername字段进行比较.
从Internet(本地网络外)或没有ADUsername值的用户运行应用程序的用户应该看到登录屏幕,他们应该使用我的自定义用户名和密码字段登录.
使用Visual Studio开发服务器非常容易,使用IIS非常困难:)
当我将Web.Config设置为使用表单时,我使用WindowsIdentity.GetCurrent().Name来获取当前的ADUsername然后,我查找我的User表以查找用户和FormsAuthentication.SetAuthCookie他.
使用IIS总是返回APPPOOL\ASP.NET v4.0用户,这不反映我需要的域/用户.
任何帮助?
当我尝试访问我的页面时,我只被重定向到login.aspx,这不是预期的.
我所追求的是Windows登录弹出窗口,我在其中进行身份验证,如果我当前登录的用户不被允许,如果是,则直接进入应用程序.
我在IIS6网络服务器上运行MVC4项目(是的,我知道.).
我在目录安全性 - 身份验证和访问控制中禁用了"启用匿名访问",并在"集成Windows身份验证"中签入.
我的web.config看起来如下:
<authorization>
<allow roles="DOMAIN\Role1"/>
<deny users="*"/>
<deny users="?"/>
</authorization>
<compilation targetFramework="4.0" debug="true"/>
<authentication mode="Windows">
</authentication>
Run Code Online (Sandbox Code Playgroud)
有线索吗?
我正在使用Visual Studio 2013和使用IIS Express Development Server在MVC 4应用程序中设置Windows身份验证.但是,我被重定向到/ Account/Login(就像我使用表单身份验证一样).
我没有在我的bin文件夹(或任何地方)中引用WebMatrix,如下所述:IIS上的ASP.NET MVC3和Windows Auth保持重定向到/ Account/Login.
我已经按照这篇文章的建议将这些条目添加到web.config中的appSettings: MVC5在使用Windows身份验证时重定向到Login.aspx
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的:
为system.web添加了Windows身份验证.
<authentication mode="Windows"/>
Run Code Online (Sandbox Code Playgroud)
将[Authorize]属性添加到我的控制器.我也尝试在web.config中使用授权标记而不是控制器上的属性(deny users ="?").结果是一样的.
对于项目中的Development Server设置,我更改了以下设置:
匿名身份验证=已禁用
Windows身份验证=已启用
我找不到对FormsAuthentication的引用.我无法弄清楚为什么它仍然重定向到不存在的登录页面.
redirect windows-authentication asp.net-mvc-4 visual-studio-2013
我们正在运行IIS7并启用了Windows身份验证.其他一切都被禁用了.当我们转到页面时,我们不会提示我们进行Windows登录,但是会被重定向到默认的表单身份验证登录页面(帐户/登录?ReturnUrl =%2f).
有任何想法吗?谢谢.
asp.net iis-7 forms-authentication windows-authentication windows-server-2008-r2