当用户未登录时,表单身份验证不会让我离开 loginUrl 页面
Forms authentication won't let me leave the loginUrl page when user is not logged
我以前有过使用 iframe 进行表单身份验证的糟糕经历,
所以我使用 ASP.NET 和 C# 创建了一个新网站,使用了两个母版页,
第一个应该在用户未登录时显示,第二个应该在用户登录时显示。
问题是这样的,在我所有的页面上,我在 Pre Init 函数中都有这段代码:
bool logged = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated;
if (logged)
{
MasterPageFile = "~/MasterL.master";
}
else
{
MasterPageFile = "~/MasterUL.master";
}
无论如何,当用户登录时它可以工作,我可以在 'logged' 母版页中看到所有内容页面,但是当用户注销时它不会让我离开 'Default.aspx' 这是在 web.config 中定义为 loginUrl 的内容,或者我定义为 loginUrl 的任何其他内容页面。
未登录母版页中的相同页面与已登录母版页中的相同。
我试过调试,在后面的代码中删除了所有说重定向的代码,但我仍然找不到它为什么会这样。
希望有人能帮我解决这个问题(注意我是母版页的新手,我不确定我是否做错了什么)。
谢谢。
要允许匿名访问,它应该
<authorization>
<allow users="?" />
</authorization>
这是针对所有页面,或者另一种配置是逐页设置匿名访问。
我以前有过使用 iframe 进行表单身份验证的糟糕经历, 所以我使用 ASP.NET 和 C# 创建了一个新网站,使用了两个母版页, 第一个应该在用户未登录时显示,第二个应该在用户登录时显示。
问题是这样的,在我所有的页面上,我在 Pre Init 函数中都有这段代码:
bool logged = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated;
if (logged)
{
MasterPageFile = "~/MasterL.master";
}
else
{
MasterPageFile = "~/MasterUL.master";
}
无论如何,当用户登录时它可以工作,我可以在 'logged' 母版页中看到所有内容页面,但是当用户注销时它不会让我离开 'Default.aspx' 这是在 web.config 中定义为 loginUrl 的内容,或者我定义为 loginUrl 的任何其他内容页面。
未登录母版页中的相同页面与已登录母版页中的相同。
我试过调试,在后面的代码中删除了所有说重定向的代码,但我仍然找不到它为什么会这样。
希望有人能帮我解决这个问题(注意我是母版页的新手,我不确定我是否做错了什么)。
谢谢。
要允许匿名访问,它应该
<authorization>
<allow users="?" />
</authorization>
这是针对所有页面,或者另一种配置是逐页设置匿名访问。