登录时显示不同的页面

时间:2011-08-12 17:31:18

标签: c# .net asp.net authentication login-control

现在,当用户登录时,他们会在同一页面上看到特定内容:

<asp:LoginView ID="LoginView" runat="server">
    <AnonymousTemplate>
    Please login <br />        
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:qcvalues_testConnectionString %>" 
            SelectCommand="SELECT * FROM [batchinfo]"></asp:SqlDataSource>
    <asp:Login ID="LoginControl" runat="server" />


    </AnonymousTemplate>
    <LoggedInTemplate>    you are logged in </LoggedInTemplate> ................

如果我Response.Redirect()到另一个页面,请说default2.aspx - 除非他们已登录,否则我如何确保用户无法访问default2.aspx

但是我希望用户在登录时被定向到不同的页面。

2 个答案:

答案 0 :(得分:2)

当用户成功登录时,

LoggedIn事件被触发。例如

protected void Login1_LoggedIn(object sender, EventArgs e)
{
    Response.Redirect("Page.aspx");
}

修改:参考您的评论,如果您在web.config的<configuration>部分下添加以下代码,则会确保unauthenticated用户无法访问您的信息页。

<location path="FolderNameIfAny/Page.aspx">
    <system.web>
        <authorization>
            <deny users="?"/>               
        </authorization>
    </system.web>
</location>

如果您想要保护unauthenticated个用户的文件夹,请执行以下操作:

 <configuration>
 ......................
 ......................
 <location path="FolderName1">
    <system.web>
        <authorization>
            <deny users="?"/>
                  <allow roles="role1"/>            
        </authorization>
    </system.web>
</location>

 <location path="FolderName2">
    <system.web>
        <authorization>
            <deny users="?"/>
                  <allow roles="role2,role3IfAny"/>         
        </authorization>
    </system.web>
</location>
   </configuration>

您可以允许特定角色访问特定文件夹。

答案 1 :(得分:1)

确保您的web.config中有<deny users="?"/>的授权部分,以防止未经身份验证的用户访问您的网站。

表单身份验证确实可以重定向到其他页面,但我不确定如何使用登录控件执行此操作。