【发布时间】:2016-02-23 23:58:39
【问题描述】:
我从一个带有个人帐户的默认 WebForms 项目开始。我有一堆使用数据库连接构建的内容。我想将所有内容限制为经过身份验证的用户,除了 default.aspx
我已经在我的 SQL 数据库中成功建立了 Identity 表结构,并且可以“注册”新用户。这一切都很好。但是,当我将身份验证设置添加到下面的 web.config 时,一切都会中断。
<system.web>
<authentication mode="Forms">
<forms name=".FormsAuth" loginUrl="Login.aspx" protection="All" slidingExpiration="false" requireSSL="false" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
我希望这允许我查看我的 Default.aspx 页面并在我离开它时重定向。相反,我尝试重定向到 \account\login 并失败并显示此消息。
HTTP 错误 404.15 - Not Found 请求过滤模块是 配置为拒绝查询字符串过长的请求。
ReturnURL 很大,似乎在重复。我试过四处寻找从头开始的例子,但没有找到一个有效的例子。这应该很简单。
【问题讨论】:
-
您提供的代码中似乎多了一个
</system.web>。如果这些是您添加的行,那么您可能正在关闭一些现有的<system.web>标记太快 -
谢谢 - 很抱歉这实际上不在我的项目中。我将其从示例中删除。根据您的评论,我尝试将身份验证和位置标签移动到主 system.web 部分,但我仍然遇到同样的问题。
-
谢谢 - 我使用的不是 MVC 表单。我确实看了一下,那些 .dll 不在我的 bin 文件夹中。
-
第二次认为它的行为类似于建议文章中的症状。如果我将 loginURL 更改为其他内容,它会忽略新页面名称并仍重定向到 /Account/Login?用那个长查询字符串...
标签: c# asp.net forms-authentication