ASP.NET 4.5 C#Forms拒绝登录页面的身份验证访问
我已经找到了一些帖子,但我似乎找不到合适的解决方案:
我有一个.net 4.0 Web应用程序,它使用Forms身份验证非常好.现在,我想在4.5中的新项目中实现相同的功能,但是当我进入未经授权的部分时,我在登录页面上不断收到401.2(访问被拒绝)错误. 应用程序重定向正确(以mvc方式,在我的页面中没有.aspx),但在登录页面上,由于服务器配置,我不断收到我未经授权查看此页面的错误. 然后我尝试了microsoft的演示,它支持框架4.5,但它仍然不起作用. 这是我的一般web.config部分: <authentication mode="Forms"> <forms loginUrl="/admin/Login.aspx" /> </authentication> 这是我的文件夹中的web.config,我希望保护其免受未经授权的用户的攻击: <system.web> <authorization> <deny users="?" /> </authorization> </system.web> 当我设置allow users =“*”时,应用程序工作正常,我可以进入每一页. 有任何想法吗? 编辑当我将login.aspx的位置更改为受保护区域外的文件夹时,我得到了正确的重定向,但我想将login.aspx页面保留在受保护的文件夹中,就像我之前做的那样. visual studio自动允许访问loginUrl =“”,不是吗? 解决方法
就我而言,问题与Visual Studio 2017有关.我的任务是将旧的.net网站转换为Web应用程序项目.作为任务的一部分,我创建了一个新的VS2017 Web应用程序项目,从旧的Web站点代码库中复制到所需的文件中,运行转换为Web应用程序,添加名称空间等,并且大部分时间都可以运行.
该应用程序使用表单身份验证和webconfig表单标记引用LocalLogin.aspx页面,但我会在浏览器中获得“访问被拒绝”消息,并且永远无法访问LocalLogin.aspx页面.经过大量的谷歌搜索,我发现了这个: “Visual Studio 2017将自动将名为Microsoft.AspNet.FriendlyUrls的NuGet包添加到您的网站或Web应用程序项目.由于此包,表单身份验证将无法工作,甚至登录页面也不会呈现多次.”转到此主题以获取更多信息: Login Page in ASP.NET application with FormsAuthentication access denied 在查看该线程中可能的解决方案之后,我选择删除友好的URL引用(Microsoft.AspNet.FriendlyUrls),并将扩展保留在web.config forms标记中的loginUrl和defaultUrl元素上.顺便说一句,解决方案中没有添加NuGet包,只是参考.我删除了引用,还必须注释掉routeconfig调用和方法. 在这之后,它仍然在浏览器中给出了“访问被拒绝”消息,但事实证明我还需要从浏览器中删除缓存的永久301重定向到友好URL,这是通过使用FriendlyUrls组件创建的首先. 我用Google搜索“从浏览器缓存中删除301重定向”,然后执行以下操作: “要清除永久重定向,请转到chrome:// net-internals.在顶部红色状态栏的右侧,单击向下箭头▼打开下拉菜单,然后在”工具“组下,选择“清除缓存”.从版本48开始,这是唯一能够清除缓存301的东西.“ How long do browsers cache HTTP 301s? 现在,一切都很顺利,希望我的一些头发可以恢复! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 使用asp.net FtpWebRequest 实现FTP常用功能
- asp.net-mvc – Visual Studio 2010未将.CSHTML(
- 日志记录 – 如何在ASP.NET MVC 6中注册ILogger进
- Pro ASP.NET Core MVC 2翻译计划:第一章
- asp.net-mvc-3 – MVC 3模型的复杂验证
- asp.net-mvc-4 – ASP.NET MVC 4移动功能
- asp.net – 使用ajax触发器异步调用时,复选框检查
- asp.net-mvc-3 – 在部署服务器中编辑ASP.NET MV
- asp.net-core – “netcoreapp1.0”是一个不受支
- Asp.net 中获取html控件的值的方法