2012-03-28 69 views
0

我在asp.net中使用newb。我在ASP.NET中使用Membership類的例子。我的項目中有一些頁面,例如default.aspx,page1.aspx,page2.aspx。我已經把登錄控制在default.aspx中。現在我想在用戶想要訪問任何頁面時檢查用戶的身份驗證。我已經在每頁中的Page_Load事件中實現了這個功能,並將其分解爲以下內容。但想要一些建議,以便我可以從每個頁面中刪除此重複的代碼。並實施一些適用於每個頁面的邏輯。我是否需要使用global.asax或任何可以在所有頁面中繼承檢查身份驗證的類?asp.net成員資格中的通用認證邏輯

if(!HttpContext.Current.User.Identity.IsAuthenticated) 
     { 
Response.redirect("default.aspx"); 

     } 
+0

看一看這些教程:http://www.4guysfromrolla.com/articles/120705-1.aspx ... http://msdn.microsoft.com/en- us/library/yh26yfzy.aspx ... http://www.asp.net/web-forms/videos/authentication。這是一個簡單但完整的:http://msdn.microsoft.com/en-us/library/xdt4thhy%28v=vs.100%29.aspx – 2012-03-28 15:24:24

回答

2

您可以從asp.net應用程序根目錄下的web.config文件的驗證元素設置默認登錄頁面。

一個例子...

<authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" 
      protection="All" 
      timeout="30" 
      name=".ASPXAUTH" 
      path="/" 
      defaultUrl="default.aspx" 
      cookieless="UseDeviceProfile" 
      enableCrossAppRedirects="false" /> 
    </authentication> 

控制訪問文件和文件夾是通過授權的元素來完成。

一個例子...

<authorization> 
    <allow roles="Admin" /> 
    <deny users="?" /> 
</authorization> 

的全部細節和更多的例子見the documentation

+0

好吧..它正在與我的代碼正常工作。首先非常感謝你。 但是當我需要允許某些具有管理員或類似角色的特定用戶訪問該頁面時,我該怎麼辦? – 2012-03-28 15:41:00

+0

您可以在授權元素中指定角色,爲您更新了示例。 – Baldy 2012-03-28 15:52:17

0

在.net中,您可以使用authorization元素在web.config中對此進行設置。

<system.web> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
</system.web> 

這將拒絕所有用戶,誰不認證的,從中你在authentication元素指定登錄頁面訪問相隔任何其他頁面。

<system.web> 
    <authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" 
     protection="All" 
     timeout="30" 
     name=".ASPXAUTH" 
     path="/" 
     requireSSL="false" 
     slidingExpiration="true" 
     defaultUrl="default.aspx" 
     cookieless="UseDeviceProfile" 
     enableCrossAppRedirects="false" /> 
    </authentication> 
</system.web> 

如從here

+0

好吧..它與我的代碼正常工作。首先非常感謝你。但是當我需要允許某些具有管理員或類似角色的特定用戶訪問該頁面時,我該怎麼辦? – 2012-03-28 15:41:17