我知道这已被问过很多,但我找不到合适的解决方案。
我正在尝试创建一个我希望使用Windows身份验证的Intranet网站。但由于某种原因,我无法让身份验证工作。
我在MSDN,Stack Overflow,博客等方面进行了广泛的搜索,并尝试了所提出的解决方案 - 但无济于事。
以下是我正在使用的内容:
在Visual Studio中,我创建了一个新的空ASP.NET Web应用程序,并在MVC中添加了一个复选标记。然后我添加了一个非常简单的(Hello World)控制器,模型和视图。
最后,我在system.web部分的web.config中添加了以下内容(许多人声称是正确的解决方案):
<authentication mode="Windows"/>
<authorization>
<allow users="DOMAIN\USER"/>
<deny users="*"/>
</authorization>
在IIS中,我创建了一个新网站,将其指向Web应用程序文件夹,并设置了我添加到“hosts”文件中的主机名。
然后我在身份验证部分启用了“Windows身份验证”功能。
在Internet Explorer(或Firefox或Chrome)中,我使用到控制器的路径导航到网站,然后提示我输入凭据。我输入域用户的凭据,但我被拒绝访问。
有些人声称IIS中的“匿名身份验证”也应该启用,但对我来说这根本没有帮助。同样的问题。
此外,有些人声称为“Windows身份验证”转到“提供商”并将其重新排序为:NTLM,Negotiate是有帮助的。不会改变我的想法。
然后我尝试将web.config中的授权更改为:
<allow users="*"/>
也无济于事。
这就像auth-thing根本不和AD说话。
根据描述的情况,任何人都知道如何正确设置它?
更新(2016年12月8日): 我发现了Scott Allen的多视频视频(引自asp.net/mvc网站),他在那里解释了MVC5的不同身份验证选项,当谈到使用Windows身份验证进行内部网站点时,事实证明它应该完成就像我在这个问题中所描述的那样。唯一的问题是,当我试用它时(我使用VS模板进行MVC并选择了Windows身份验证),它只适用于IISExpress - 而不是真正的IIS(即使在同一台机器上,IISExpress和IIS设置都使用Windows身份验证而不是允许匿名)。非常令人沮丧。
答案 0 :(得分:1)
您不应在ASP.Net MVC中使用def looks_like_a_baz
it "looks like a baz" do
expect # etc
end
end
def bar_context
context "with a bar" do
before :each do
subject { Foo.new().add_bar }
end
looks_like_a_baz
end
end
describe Foo do
bar_context
# etc
标记。它适用于基于路径的 ASP.Net Web表单 ,而ASP.Net MVC适用于控制器,操作和路由。
在ASP.Net MVC中,通过AD验证用户的方法很少。我个人喜欢使用 OWIN中间件 。
它很少,所以我在GitHub中创建了一个示例项目AspNetMvcActiveDirectoryOwin。你可以把它分叉,然后立即测试。
以下三个是主要类别 -