2011-01-28 40 views
2

我想要做以下在ASP.NET中的會員實施

我在我的網站上有一些頁面,只能由具有特定角色的註冊用戶查看。

我正在使用ASP.NET成員來創建用戶和角色。

如何將用戶重定向到登錄頁面,如果他們試圖無需登錄即可訪問某個頁面。

我嘗試了ASP配置頁。但它允許我只在文件夾級別允許/拒絕權限。如何以最小的努力在頁面級別實現相同的功能?


你好朋友,非常感謝你的快速回復。他們真的很有幫助。你還可以建議我在哪裏尋找解釋這個安全標籤下可用的不同標籤的例子和解釋。嘗試Google使用..沒有太大的用處。

回答

3

您可以在配置文件中使用location屬性,如:

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

也可以在page_load功能使用此代碼:

if (!Page.User.Identity.IsAuthenticated) 
{ 
    FormsAuthentication.RedirectToLoginPage(); 
    return; 
} 

指定登錄頁面:

<system.web> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Index.aspx" timeout="2880" /> 
    </authentication> 
</system.web> 
+0

非常感謝你的回答。我使用了FormsAuthentication.RedirectToLoginPage()。它重定向到login.aspx。但我的登錄頁面是index.aspx。我在哪裏具體說明這一點? – 2011-01-28 19:03:52

1

配置你的web.config,你可以申請允許/拒絕在頁面級規則,例如:

<?xml version="1.0"?> 
<configuration> 
    <location path="SecuredPage.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="SuperUsers" /> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
</configuration> 
2

你應該能夠做這樣的事情(發生顯着變化授權部,以您的需求):

<location path="MyPage.aspx" allowOverride="true"> 
    <system.web> 
     <authorization> 
     <allow roles="Registered User"/> 
     <deny users="*"/> 
     <deny users="?"/> 
     </authorization> 
    </system.web> 
    </location>