查了下資料,原來登錄的Url是在web.config中設(shè)置的。如果是用Form驗證登錄,缺省的web.config是這樣寫的:
<system.web>
<authentication mode="Forms" />
</system.web>
需要修改成如下的樣子:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/member/login.aspx"></forms>
</authentication>
</system.web>
(二)站點導(dǎo)航
1.三種導(dǎo)航控件
Menu:使用一菜單顯示站點的結(jié)構(gòu)。
TreeView:用一個可展開的樹顯示站點的結(jié)構(gòu)
SiteMapPath:用于顯示終端用戶處于相對于站點結(jié)構(gòu)的具體位置
2.Web.sitemap 導(dǎo)航XML文件
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode title="首頁" url="SiteMapTest.aspx" >
<siteMapNode title="產(chǎn)品" roles="*">
<siteMapNode title="Windows" url="SiteMapTest.aspx?id=windows" />
<siteMapNode title="Office" url="SiteMapTest.aspx?id=office" />
<siteMapNode title="Mobile Devices" url="SiteMapTest.aspx?id=mobile" />
<siteMapNode title="Business Solutions" url="SiteMapTest.aspx?id=business" />
<siteMapNode title="Servers" url="SiteMapTest.aspx?id=servers" />
<siteMapNode title="Developer Tools" url="SiteMapTest.aspx?id=tools" />
<siteMapNode title="Games and XBox" url="SiteMapTest.aspx?id=games" />
<siteMapNode title="All Products" url="SiteMapTest.aspx?id=all" />
</siteMapNode>
<siteMapNode title="資源" roles="*">
<siteMapNode title="支持" roles="*">
<siteMapNode title="修改密碼" url="~/Login/ChangePassword.aspx" />
<siteMapNode title="Knowledge Base" url="SiteMapTest.aspx?id=knowledge" />
</siteMapNode>
<siteMapNode title="Downloads" url="SiteMapTest.aspx?id=downloads" />
<siteMapNode title="Windows Update" url="SiteMapTest.aspx?id=windowsupdate" />
<siteMapNode title="Office Update" url="SiteMapTest.aspx?id=officeupdate" />
<siteMapNode title="Learning Tools">
<siteMapNode title="Training & Certification" url="SiteMapTest.aspx?id=training" />
<siteMapNode title="Books" url="SiteMapTest.aspx?id=books" />
<siteMapNode title="Events & Webcasts" url="SiteMapTest.aspx?id=events" />
<siteMapNode title="Patterns & Practices" url="SiteMapTest.aspx?id=patterns" />
</siteMapNode>
<siteMapNode title="Community" url="SiteMapTest.aspx?id=community" />
<siteMapNode title="Security" url="SiteMapTest.aspx?id=security" />
</siteMapNode>
<siteMapNode title="RSS" roles="*">
<siteMapNode title="公司關(guān)系" url="SiteMapTest.aspx?id=relations" />
<siteMapNode title="RSSSite" url="~/RSS/RSSSite.aspx" />
<siteMapNode title="Careers" url="SiteMapTest.aspx?id=careers" />
<siteMapNode title="About this Site" url="SiteMapTest.aspx?id=about" />
</siteMapNode>
</siteMapNode>
</siteMap>
Web.sitemap文件必須包含根結(jié)點sitemap。一張站點地圖由一系列相聯(lián)系的SiteMapNode對象組成。這些SiteMapNode以一種層次方式聯(lián)系在一起。該層次包含單個根結(jié)點-它是該層中唯一的一個沒有父結(jié)點的結(jié)點,代表首頁。在該父sitemapnode結(jié)點下,可以有若干個子sitemapnode結(jié)點,分別按層次結(jié)構(gòu)代表了網(wǎng)站的各子欄目(留意一下上例中,各個子結(jié)點之間的包含關(guān)系)。
3. 數(shù)據(jù)源SiteMapDataSource控件
SiteMapDataSource會自動查找項目中名為Web.sitemap的 一個XML文件
(三)權(quán)限管理
網(wǎng)站在安全性方面有一個常見的要求:特定的頁面僅允許某些成員或其他經(jīng)過身份驗證的用戶瀏覽。ASP.NET 的角色管理提供了一種方法,可以基于安全角色限制對 Web 文件的訪問。站點地圖安全性調(diào)整提供了一種同樣基于安全角色的方法來隱藏站點地圖中的導(dǎo)航鏈接。
1. ASP.NET 網(wǎng)站配置
1)提供程序
可使用 SQL SERVER 2005(默認(rèn)),2000和Access數(shù)據(jù)庫存儲用戶信息。
若要使用 SQL SERVER 2000數(shù)據(jù)庫存儲信息:
a.用SQL Server的企業(yè)管理器,創(chuàng)建一個數(shù)據(jù)庫,如為zyh;
b.用aspnet_regsql(C:\Windows\Microsoft.Net\Framework\v2.0.50215\aspnet_regsql.exe)創(chuàng)建數(shù)據(jù)庫。除在創(chuàng)建向?qū)У牡?/span>3步數(shù)據(jù)庫下拉框選擇“zyh”以外,其余各步驟皆使用默認(rèn)設(shè)置。這樣,在Sql Server 2000中會創(chuàng)建一個含有用戶表和存貯過程的完整數(shù)據(jù)庫。
c.在管理工具中打開IIS,找到虛擬目錄newtest,用鼠標(biāo)右鍵點擊,然后左鍵點菜單項【屬性】、【ASP.NET】標(biāo)簽、【編輯配置】按鈕,在【常規(guī)】標(biāo)簽的【連接字符串管理器】中,點名稱【LocalSqlServer】,點【編輯】按鈕,把【連接參數(shù)】修改為相應(yīng)能夠連接到數(shù)據(jù)庫zyh的數(shù)據(jù)庫連接字符串,如“Data Source=.;Initial Catalog=zyh;Persist Security Info=True;User ID=sa;Password=12345”,此后,一直點【確定】按鈕,最后到IIS管理工具界面即可。
d.最后返回網(wǎng)站管理工具Web頁面,點擊安全主題,就會出現(xiàn)“使用安全設(shè)置向?qū)О床烤桶嗟嘏渲冒踩浴?#8221;鏈接和其它相關(guān)鏈接。
2)安全設(shè)置選項被分為三部分:用戶,角色和規(guī)則。
其中規(guī)則建立了角色對項目中文件夾的訪問權(quán)限。
3)應(yīng)用程序配置
可設(shè)置SMTP服務(wù)器 以供用戶通過email找回密碼。
2. 建立登錄頁面
3.在Web.config文件中啟用角色管理
<system.web>
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
description="Default SiteMap provider."
type="System.Web.XmlSiteMapProvider "
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true" />
</providers>
</siteMap>
<roleManager enabled="true" />
<authentication mode="Forms">
<forms loginUrl="~/Login/login.aspx"></forms>
</authentication>
<compilation debug="true">
<assemblies>
<add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
</system.web>
<system.net>
<mailSettings>
<smtp from="wangyihust@163.com">
<network host="smtp.163.com" password="passwordModify" userName="wangyihust" />
</smtp>
</mailSettings>
</system.net>
4.在Web.sitemap 文件中 加入角色權(quán)限,以顯示或隱藏相關(guān)頁面
<siteMapNode title="RSS" roles="*">
<siteMapNode title="公司關(guān)系" url="SiteMapTest.aspx?id=relations" />
<siteMapNode title="RSSSite" url="~/RSS/RSSSite.aspx" />
<siteMapNode title="Careers" url="SiteMapTest.aspx?id=careers" />
<siteMapNode title="About this Site" url="SiteMapTest.aspx?id=about" />
</siteMapNode>
其中,roles="*"表示所有人都可以看到下面的頁面,但是我們在規(guī)則中可以拒絕某些 角色的用戶看到下面的相關(guān)頁面(通過目錄權(quán)限控制)