login-logout confusion(如果未登录则重定向到登录页面)

时间:2014-01-22 02:06:50

标签: asp.net redirect login web-config

我目前正在创建一个Web应用程序,出于明显的安全原因,我必须将匿名用户重定向到登录页面。在做一些研究之前,这里是我的Site.Master页面:

[ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/Logout.aspx"/> ]

如您所见,我创建了自己的Logout页面,其中包含注销代码FormsAuthentication.Signout等。此站点地图中还有一个Logout链接,用于调用此页面。

今天早上一切正常。当我单击LoginStatus中的“注销”链接时,注销工作正常。我单击siteMap中的Logout链接,注销工作正常。我尝试立即再次登录,应用程序将我重定向到我的默认页面。但是当我在Web.config

中添加这段代码时
<authorization>
  <deny users="?"/>
</authorization>
发生了一些奇怪的事情。我单击LoginStatus中的Logout链接,然后应用程序将我重定向到Login页面而不是Logout页面。更重要的是,当我再次尝试登录时,该应用程序会将我重定向到“注销”页面。这使得我必须登录 TWICE 才能再次回到应用中。

为什么/这是怎么回事?我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是因为您拒绝访问未经身份验证的用户访问您网站中的所有网页。您需要为可以未经身份验证的页面添加排除。

例如 - 为任何用户授予对主页的访问权限: -

   <location path="home.aspx">
      <system.web>
         <authorization>
            <allow users="?"/>
         </authorization>
      </system.web>
   </location>

这里有一些指南: -

http://www.codeproject.com/Articles/667473/ASP-NET-WebConfig-Location-and-Authroization-Tags

http://www.c-sharpcorner.com/UploadFile/prg.apv/usage-of-location-tag-in-Asp-Net-application/

相关问题