2011-08-12 50 views
0

現在,當用戶登錄時,他們看到在同一頁面上的具體內容:在登錄時顯示不同的頁面

<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

但是我希望用戶被引導至不同的頁面時,他們在被記錄。

+0

的Response.Redirect()? –

+0

@jjd謝謝我在底部 –

+0

@jjd也總初學者在那裏woudl我把Response.Redirect的補充幾句話? –

回答

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> 

您可以允許特定的角色來訪問特定的文件夾。

+0

我如何確保只有登錄用戶可以去www.mysite.com/page.aspx? –

+0

非常感謝你,我如何擁有多個與多個規則關聯的文件夾。另一個詞role1可以訪問folder1,role2可以訪問folder2 –

+0

根據你的第二條評論再次更新我的答案。 –

1

確保你在你的web.config與<deny users="?"/>,防止未經授權的用戶訪問您的網站的授權部分。

窗體身份驗證確實有一種方法來重定向到不同的頁面,但我不知道使用的登錄控制它,你怎麼做。