一个用以手动生成Podcast的RSS种子的小Web应用。用到了之类几独技术:

SQL Server 2005 Express

主题数据库结构吧:

XML 1

其中UserId等于aspnet_Users表中的UserId,而Items通过UserId和ChannelName共同外键关联Channels

ASP.NET 2.0 Membership Service

默认情状下,通过VS的ASP.NET
Configuration效率来针对网站添加Membership等功效,会活动抬高一个ASPNET的数据库文件,那么咋样运用现存的数据库也?

《如何以现有通过AttachDbFilename连接的Sql Express数据库及安装membership

除此以外,再依如下设置即可:

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">

<providers>

<clear />

<add name="SqlProvider" 

type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 

connectionStringName="PodcastPublisherConnectionString" applicationName="PodcastPublisher" enablePasswordRetrieval="false" 

enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed" 

minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" />

</providers>

</membership> 

其中,把applicationName的默认值“/”改呢“PodcastPublisher”凡作为下托管给虚拟目录上,而无根站点。

ASP.NET Login Control

暨ASP.NET 2.0 Membership
Service结合,可以无去好写登录,注销的代码,还会活动就注册新用户,改变密码,重置密码的功效。大家好于代码中见到,我于Default.aspx、Login.aspx、Register.aspx和ChangePassword.aspx中一贯无写一句后置代码。

其实在IIS7中,签到控件还是能用于PHP的Web应用程序。

SqlDataSource Control

ASP.NET 2.0资了同样栽新特色Data Source
Control,包括ObjectDataSource、SqlDataSource、AccessDataSource和XmlDataSource,在ASP.NET
3.5蒙,额外包括了LinqDataSource。

于这示例程序中,我同一起头自想用LinqDataSource的,也真正基本都勾好了,可惜调试运行的时候总是添加数据发生问题(后边说问题发以这里)。后来只可以改用SqlDataSource。

通过把SqlDataSource和GridView、DetailsView想成,可以挺轻地开出操作数据的页面。如Channels.aspx和Items.aspx。

在此出一个技,怎么依据登录用户筛选数据,添加数据时怎样添加当前用户之ID呢

率先编写一个术来抱UserId,并当Session中加上这些价

protected void Page_Load(object sender, EventArgs e)

{

if (this.Session["UserId"] == null)

{

this.Session.Add("UserId", GetUserId());

}

} 



private Guid GetUserId()

{

MembershipUser user = Membership.GetUser();

return (Guid)user.ProviderUserKey;

} 

然后,在SqlDataSource中,设置SelectCommand=”SELECT [Name], [Title],
[Link], [Description], [Language], [Copyright],
[LastBuildDate] FROM [Channels] WHERE ([UserId] = @UserId)”
,以及安装

<SelectParameters>

<asp:SessionParameter Name="UserId" SessionField="UserId"/>

</SelectParameters> 

InsertParameters操作为是同理。在LinqDataSource中,这些参数老是错,就到底自己冲网及的素材,把Type改也“Empty”仍旧大(可以Select,可是Insert就生题目)。

如上这多少个参数可以经设计器来添加,尽管采纳SqlDataSource的SmartTag来操作,然则要记得把参数的Type删除掉,不然不识别Guid的花色。

此外一个微技巧,怎拿GridView、DetailsView展现的数码并啊?只待这样:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)

{

DetailsView1.PageIndex = GridView1.SelectedIndex;

} 

ASP.NET AJAX的使用

自这边就坏粗略地应用UpdatePanel,以及UpdateProgress。具体的看Channels.aspx和Items.aspx页面。

LINQ to SQL

一律开端下SqlDataSource的下,没有发觉而博取其中多少这样麻烦,所以索性间接接纳LINQ
to SQL获取数据。见Items.aspx.cs中之Button1_Click

LINQ to XML

自身使用LINQ to
XML来变化特定格式的xml,并保留在数据库的某某字段中。这里发出个小技巧,就是生成xml数据的嵌套:

XDocument xdoc = new XDocument(

new XElement("rss", new XAttribute("version", "2.0"),

new XElement("channel",

new XElement("title", channel.Title),

new XElement("link", channel.Link ?? ""),

new XElement("description", channel.Description ?? ""),

new XElement("language", channel.Language ?? ""),

new XElement("copyright", channel.Copyright ?? ""),

new XElement("lastBuildDate", DateTime.Now),

new XElement("generator", "Podcast Publisher"),

new XElement("webMaster", Session["UserId"].ToString()),

new XElement("ttl", 1),

GetChildItems(channel.Items)

)

)

); 

LINQ to SQL批量删除数据

当下篇稿子遭到,我详细介绍了LINQ
to
SQL的批量去除的主意。但是自己之所以底是批量勾的对取巧版,我的调用代码如下:

DataClassesDataContext dc = new DataClassesDataContext();

var query = from item in dc.Items

where item.UserId == userId && item.ChannelName == chName && item.PubDate.AddDays(10)<= DateTime.Now

select item;

dc.DeleteAll(query); 

IIS7 URL Rewrite Module

因而IIS7的管理器举办配备,保存在web.config中:

<rewrite>

<rules>

<rule name="RSS">

<match url="([_0-9a-z-]+)/([_0-9a-z-]+)/rss" />

<action type="Rewrite" url="rss.aspx?user={R:1}&amp;channel={R:2}" />

</rule>

</rules>

</rewrite> 

即时是把针对rss.aspx的访转发也username/channelname/rss的地方

关于IIS7的运用可拘留这里:http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

下载在此:http://blogs.iis.net/bills/archive/2008/07/09/new-iis7-releases-url-rewrite-application-routing-and-load-balancing-and-powershell-cmd-lets.aspx

========================

整示例程序的源代码下载地址:http://www.91files.com/?YN9F9KU1PNB71UQR9FWD

相关文章

网站地图xml地图