登录/注册时的C#ASP.Net身份验证

时间:2011-11-01 20:41:55

标签: c# asp.net authentication login returnurl

我正在努力让我的LogIn / Registering系统正常工作。 我有一个register.aspx页面,其中用户注册并将所有这些数据输入数据库,然后我有一个Login.aspx,用户应该在其中输入用户名和密码。

但我似乎无法进入这个阶段,因为身份验证似乎一直在搞乱。

<authentication mode="Forms">
  <forms name="401kApp" loginUrl="/login.aspx"
         defaultUrl="Home.aspx"
         />
</authentication>

我希望我的身份验证能够意识到没有人登录(因为除非他们自己登录登录页面,否则他们不应该这样做)。但由于某种原因,它似乎继续重定向我,我经常得到HTTP 404:资源无法找到。

重定向到:

http://localhost:52761/login.aspx?ReturnUrl=%2f

我不知道为什么会这样做,因为它甚至不会加载登录页面或注册页面让我在身份验证时登录。

这是我的登录代码:

<asp:LoginStatus id="LoginStatus1" runat="server"></asp:LoginStatus>
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
Please log in.
</AnonymousTemplate>
<LoggedInTemplate>
Thanks for logging in 
</LoggedInTemplate>
</asp:LoginView>              

任何人都可以帮助我吗?

提前致谢

2 个答案:

答案 0 :(得分:4)

您需要添加一个&#39;位置&#39;你的web.config部分会让你注册.aspx&#39;匿名访问。否则,当用户尝试访问它时,它们将被重定向到登录页面以进行身份​​验证:

<location path="/account/register.aspx">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

更多信息:location Element (ASP.NET Settings Schema)

答案 1 :(得分:0)

您的应用程序根目录中是否有Login.aspx页面?

如果您检查web.config,您应该看到一个与成员资格提供程序(您似乎正在使用)相关的部分,您可以在其中指定登录页面,如果它被称为与login.aspx不同的