gpt4 book ai didi

asp.net - 为什么我的 MVC3 网页不将 Windows 凭据发送到 IIS Express?

转载 作者:行者123 更新时间:2023-12-02 16:45:51 25 4
gpt4 key购买 nike

我一直在努力让 Windows 身份验证与我正在开发的 MVC3 应用程序 (VS 2010 SP1) 配合使用,但到目前为止还没有真正的运气。我在我的开发机器上运行 XP(明年之前没有钱升级),如果这有影响的话。我还应该提到,我使用 IIS Express 作为 VS 2010 中的默认 Web 开发服务器。

不久前我开始使用一个空的 MVC3 应用程序,因为我没有从 VS 菜单中获得 Intranet 模板,直到我昨天升级了 MVC3 工具(好吧,我有点慢)。安装并检查该模板后,我向我的项目添加了对 DirectoryServices 的引用,并添加了在页面右上角显示当前登录用户的代码。根据图形,它现在应该显示“欢迎 PCE\dnewman!”

我遵循了这篇文章中的出色说明:IIS Express Windows Authentication并确实取得了一些进展。但是,我现在从 IIS Express 收到 401.2 错误,告诉我我没有获得授权...

因此,我进入项目属性并将匿名身份验证设置为“启用”。现在我可以访问网页了,但是我在页面右上角看到的是“欢迎光临!” -- 没有用户名。

我在 IE 和 Firefox 上都尝试过,结果相同。什么$#^&!我在这里失踪了吗?我好像没有登录Windows!!我需要从哪里开始寻找问题?

几年前,我在前雇主那里编写了一个 Windows 窗体应用程序,用于使用 Windows 登录凭据对用户进行身份验证。在这种情况下,我必须特别小心发送凭据,然后在服务端对它们进行显式身份验证。我需要做些什么才能使浏览器在每次 GET 或 POST 中包含凭据吗?

根据请求,这是我的 web.config 的内容,并对所有 Glimpse 配置内容表示歉意。

<?xml version="1.0" 
encoding="utf-8"?>
<configuration>
<configSections>
<section name="glimpse"
type="Glimpse.Core.Configuration.GlimpseConfiguration" />
</configSections>
<appSettings>
<add key="ClientValidationEnabled"
value="true" />
<add key="UnobtrusiveJavaScriptEnabled"
value="true" />
</appSettings>
<system.web>
<compilation debug="true"
targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
<trace writeToDiagnosticsTrace="true"
enabled="true"
pageOutput="false" />
<httpModules>
<add name="Glimpse"
type="Glimpse.Core.Module" />
</httpModules>
<httpHandlers>
<add path="glimpse.axd"
verb="GET,POST"
type="Glimpse.Core.Handler" />
</httpHandlers>
</system.web>
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false"/>
<windowsAuthentication enabled="true" />
</authentication>
</security>
<modules runAllManagedModulesForAllRequests="true">
<add name="Glimpse"
type="Glimpse.Core.Module,Glimpse.Core"
preCondition="integratedMode" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="Glimpse"
path="glimpse.axd"
verb="GET,POST"
type="Glimpse.Core.Handler,Glimpse.Core"
preCondition="integratedMode" />
</handlers>
</system.webServer>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IReporting"
maxBufferSize="1024000"
maxBufferPoolSize="1000000"
maxReceivedMessageSize="1024000">
<readerQuotas maxDepth="200"
maxStringContentLength="65536"
maxArrayLength="32768"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<security mode="None" />
</binding>
<binding name="normalBinding">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint name="tcpAdminServiceEndpoint"
address="net.tcp://PCESRV22.pce.local:9000/ProductionMonitor/AdminService"
binding="netTcpBinding"
bindingConfiguration="normalBinding"
contract="Contracts.IAdmin" />
<endpoint name="tcpMasterDataServiceEndpoint"
address="net.tcp://PCESRV22.pce.local:9010/ProductionMonitor/MasterDataService"
binding="netTcpBinding"
bindingConfiguration="normalBinding"
contract="Contracts.IMasterData" />
<endpoint name="tcpReportingServiceEndpoint"
address="net.tcp://PCESRV22.pce.local:9030/ProductionMonitor/ReportingService"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IReporting"
contract="Contracts.IReporting" />
</client>
</system.serviceModel>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0"
newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<glimpse enabled="true" />
</configuration>

我非常愿意根据需要透露更多细节,但我真的不知道从哪里开始寻找。我能找到的每一篇文章似乎都假设这部分只是作为 Windows/MVC3/ASP.NET 设置的一部分发生。

谢谢戴夫

最佳答案

如果您遵循引用帖子中的所有建议,您最终会遇到无法正常工作的困惑,就像我一样。每个答案都有其优点,但全部应用只会导致挫败感。

来自 Microsoft 的帖子回答了所有问题并让我开始工作:How to Create an Intranet Site Using ASP.NET MVC

保存此链接,它是黄金...

我还发现“添加可部署依赖项”选项可以破坏 Windows 身份验证。如果我在“添加可部署依赖项”对话框中选择“使用 Razor 语法的 ASP.NET 网页”选项,它会立即破坏 Windows 身份验证并似乎返回到表单例份验证 - 我收到 404 错误“资源不能找到”寻找/帐户/登录。我不必部署它,只是选择该选项就破坏了它。解决这个问题的唯一方法就是重新开始。我无法删除足够的任何内容以使其重新开始工作,并且我无法确定进行了哪些更改导致了此行为。

这篇博文挽救了局面:How to Deploy an ASP.NET MVC 3 App to Web Hosting with "\bin Deployment" - 它显示了需要哪些程序集以及在部署 Web 应用程序时如何将它们包含在您的 Web 应用程序中,而无需使用“添加可部署依赖项”的废话。

我希望这可以节省我花在让一切正常工作上的时间。

关于asp.net - 为什么我的 MVC3 网页不将 Windows 凭据发送到 IIS Express?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8054210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com