我的应用程序显示奇怪的行为。每当我按页面上的提交按钮保存时,它都会自动重定向到/login.aspx。用户已登录,代码不会重定向到登录.aspx。我已经搜索了所有解决方案文件,但我从未找到文本"login.aspx",数据库也不包含"login.aspx"。我想知道系统如何重定向到此页面。此外,我的应用程序中不存在此页面。请注意,此问题仅在实时站点上。这是错误:
Server Error in '/' Application.
找不到资源。
说明:HTTP 404。要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。 请查看以下 URL 并确保拼写正确。
请求的网址:/登录.aspx
版本信息:Microsoft .NET 框架版本:2.0.50727.4211;ASP.NET 版本:2.0.50727.4209
该错误是由于文件夹的写入权限造成的。
听起来您正在 web.config 中使用带有重定向 URL 的表单身份验证。在身份验证节点下的 web.config 中签入。
- 安装 Nuget
- 将 Elmah 包添加到您的项目中。(拿起啤酒)
- 检查会话是否正确保留。
- 检查
HttpContext.Current.User.Identity.IsAuthenticated
是否为真。 - 检查表单身份验证的 Web.Config 和 IIS 设置。
- 将 ASP.Net 重新注册到您的 IIS 安装(谷歌
aspnet_regiis
)。 -
指定默认登录页面,如下所示:
<authentication mode="Forms"> <forms loginUrl="~/Signin.aspx" defaultUrl="~/Dashboard.aspx" name=".ASPXFORMSAUTH"></forms> </authentication>
此表单身份验证教程可能很有价值:
http://www.dotnetfunda.com/articles/article141.aspx
检查实时服务器上的设置,它可能会强制超时作为全局设置。
此外,正如Jeremy Child指出的那样,将身份验证表单loginUrl设置为您进行身份验证的页面。
在 C:\windows\Microsoft.NET\Framework\v4.0.30319\Config\Web.config(或你正在使用的任何版本 .net)检查你的框架版本 web.config,以确保有人没有将其作为默认值添加在那里。请记住,3.5 和 3.0 都使用 2.0 web.config