当前位置:   article > 正文

HTTP 错误 401.0 - Unauthorized 的解决方案_401 unauthorized

401 unauthorized


我的项目突然间报这个错误....



HTTP 错误 401.0 - Unauthorized

您无权查看此目录或页面。
最可能的原因:
  • 通过身份验证的用户无权访问处理请求所需的资源。
可尝试的操作:
  • 查看失败请求跟踪日志以获取有关此错误的其他信息。有关详细信息,请单击此处
详细错误信息:
模块   ManagedPipelineHandler
通知   ExecuteRequestHandler
处理程序   System.Web.Mvc.MvcHandler
错误代码   0x00000000
请求的 URL   http://localhost:46648/JiMu/Index/Login?ReturnUrl=%2fJiMu%2fIndex%2fLogin%3freturnUrl%3d%252fJiMu%252fIndex%252fLogin&returnUrl=%2fJiMu%2fIndex%2fLogin
物理路径   F:\Project\积木管理系统V2.0\Web\JiMu\Index\Login
登录方法   匿名
登录用户   匿名
请求跟踪目录   C:\Users\YueYue\Documents\IISExpress\TraceLogFiles\WEB
更多信息:
这是 IIS 返回的一般拒绝访问错误。通常,有一个子状态代码与此错误相关联,它描述了服务器为何拒绝请求。请检查 IIS 日志文件以确定是否有子状态代码与此错误相关联。

查看更多信息 »

Microsoft 知识库文章:

  • 907273


网上百度了N久都说是文件夹权限问题.我给整个盘都分配了Everyone 的权限,文件夹也分配额Everyone 的权限.

但是我看到报错内容提示登录用户是匿名用户, 又在组策略里面将 Everyone的权限应用在匿名用户身上. 也就是说,系统把匿名用户当作 Everyone的组员来看.

理论上文件系统已经不存在什么权限问题了.

可还是报下面的错误. 这个报错页面很专业,猛地一看好像是iis 系统错误爆出的..

网上也没有关于 401.0的说明全部都是

401.1 

401.2

401.3

401.4

的说明,只有几篇是关于401.0的.结果还不对.

实在无奈的情况下发现一篇文章,里面.说把项目的属性里面(不是属性页)   的windows身份验证启用就好了.

打开方法 属性页是右键可以点击出来的.   属性窗口是直接选中项目以后. 属性窗口(右下)自动会显示的.







我也抱着死马当活马医的心态试了下.



奇迹出现了.vs2010调试器有反应了.报了一个异常.异常是从类:


public class UserAuthorizeAttribute : AuthorizeAttribute 

里面的AuthorizeCore 方法.爆出来的.

这个方法是用来验证用户是否已登录的过滤器.

我调试跟踪了一下发现. 


登录的用户名是 一个系统用户名. .

这个用户名是window系统上固有的用户名.  (启用window身份验证,会采取window那套自动登录机制.. 这当然不是我们想要的.)


然后我又把windows身份验证 给关掉了.


发现登录用户名是空的了.代码 return false; 

一开始的错误又出来了.

也就是说这个异常.跟AuthorizeCore  这个方法的返回结果有关系.

又百度了一下. AuthorizeCore  这个方法干啥用的.  (解释一下,代码是别人写的.网上开源的.)

这篇文章

http://www.tuicool.com/articles/yuUzeq


AuthorizeCore  这个方法直接 return false;  以后会跳转到 web.config 中


  1. <system.web>
  2. <authentication mode="Forms">
  3. <forms loginUrl="~/Account/Login" timeout="2880" />
  4. </authentication>
  5. </system.web>

loginurl指定的 的网址.


我的配置是 <forms loginUrl="~/JiMu/Index/Login"

于是我启动调试,看看有没有进入这个action

输入网址  /JiMu/Index/Login


结果是首先进入了AuthorizeCore  这个方法,然后return false 以后就直接报错了.

都没有进入. /JiMu/Index/Login 这个方法.

我就想了,我是要进入登录页面的  ,既然要登录肯定不能进入 AuthorizeCore   这个验证方法.

要跳过所有对 login这个登录路径的验证.. 否则死循环.用户无法登录..


到这里我突然间就想起来了.

我之前好像删过,  [AllowAnonymous] 这种标签..

回去一检查代码..TMD真想骂死自己...

手贱把[AllowAnonymous]这个属性删掉了... 这个属性去掉以后,就会自动运行到AuthorizeCore  函数里面

  1. [HttpPost]
  2. [AllowAnonymous]
  3. public ActionResult Login(LoginModel item, string RedirectTo)
  4. {
  5. ///.....
  6. }

导致报401.0这个错误.... 转了一大圈,学了一大圈,最后问题竟然是自己手贱造成的...

 

如果这篇文章对你帮助,那么请施舍点包子钱吧.. 在下支付宝号:




这几天有人向我要我的配置.我贴一下.

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. 有关如何配置 ASP.NET 应用程序的详细信息,请访问
  4. http://go.microsoft.com/fwlink/?LinkId=169433
  5. -->
  6. <configuration>
  7. <configSections>
  8. <sectionGroup name="elmah">
  9. <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
  10. <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
  11. <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
  12. <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
  13. </sectionGroup>
  14. <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  15. </configSections>
  16. <connectionStrings>
  17. </connectionStrings>
  18. <appSettings>
  19. <add key="webpages:Version" value="2.0.0.0" />
  20. <add key="webpages:Enabled" value="false" />
  21. <add key="PreserveLoginUrl" value="true" />
  22. <add key="ClientValidationEnabled" value="true" />
  23. <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  24. </appSettings>
  25. <!--
  26. 有关 .NET 4.5 的 web.config 更改的说明,请参见 http://go.microsoft.com/fwlink/?LinkId=235367。
  27. 可在 <httpRuntime> 标记上设置以下特性。
  28. <system.Web>
  29. <httpRuntime targetFramework="4.5" />
  30. </system.Web>
  31. -->
  32. <system.web>
  33. <httpRuntime requestValidationMode="2.0" />
  34. <pages controlRenderingCompatibilityVersion="4.0">
  35. <namespaces>
  36. <add namespace="System.Web.Helpers" />
  37. <add namespace="System.Web.Mvc" />
  38. <add namespace="System.Web.Mvc.Ajax" />
  39. <add namespace="System.Web.Mvc.Html" />
  40. <add namespace="System.Web.Routing" />
  41. <add namespace="System.Web.WebPages" />
  42. <add namespace="System.Linq" />
  43. <add namespace="System.Data" />
  44. </namespaces>
  45. </pages>
  46. <httpModules>
  47. <!--<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
  48. <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
  49. <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />-->
  50. </httpModules>
  51. <compilation debug="true" targetFramework="4.5">
  52. <assemblies>
  53. <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  54. </assemblies>
  55. </compilation>
  56. </system.web>
  57. <system.webServer>
  58. <validation validateIntegratedModeConfiguration="false" />
  59. <handlers>
  60. <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  61. <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  62. <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  63. <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  64. <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
  65. <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  66. <add name="elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
  67. </handlers>
  68. <modules runAllManagedModulesForAllRequests="true">
  69. <!--<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
  70. <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
  71. <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />-->
  72. </modules>
  73. <urlCompression doStaticCompression="false" />
  74. </system.webServer>
  75. <elmah>
  76. <security allowRemoteAccess="true" />
  77. <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" />
  78. </elmah>
  79. <entityFramework>
  80. <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  81. <parameters>
  82. <parameter value="v11.0" />
  83. </parameters>
  84. </defaultConnectionFactory>
  85. </entityFramework>
  86. <runtime>
  87. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  88. <dependentAssembly>
  89. <assemblyIdentity name="System.Web" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  90. <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  91. </dependentAssembly>
  92. <dependentAssembly>
  93. <assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089" culture="neutral" />
  94. <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  95. </dependentAssembly>
  96. <dependentAssembly>
  97. <assemblyIdentity name="System.Configuration" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  98. <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  99. </dependentAssembly>
  100. <dependentAssembly>
  101. <assemblyIdentity name="EntityFramework.MappingAPI" publicKeyToken="7ee2e825d201459e" culture="neutral" />
  102. <bindingRedirect oldVersion="0.0.0.0-5.0.0.9" newVersion="5.0.0.9" />
  103. </dependentAssembly>
  104. <dependentAssembly>
  105. <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
  106. <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  107. </dependentAssembly>
  108. <dependentAssembly>
  109. <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  110. <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  111. </dependentAssembly>
  112. </assemblyBinding>
  113. </runtime>
  114. </configuration>



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/920745
推荐阅读
相关标签
  

闽ICP备14008679号