百度百度
百度最近动作不少,主页都一直改来改去,和live.com学了一下,把登陆做在了右上角,不知道是不是下一步也会做个个性页面的定制功能。
估计百度一片洁白的风格要改了,少儿版已经突破这一点了。顺便说一下,这个少儿版这样出现还是有些别扭,大概搞个young.baidu.com就会好一些,否则和别的东西夹杂在一起就没啥效果了。还有mp3放到了首页,应该和那个百代有关。然后看看百度产品,已经有39项,显得有些乱了。
看到百度空间的搬家服务,这招有些损,虽然难度不算大,但明摆着挖人家墙角嘛。我到处都有博,也到处都写,搬不搬无所谓了,有空的话倒是可以体验一下搬家的感觉。
开始摸索Ajax
对所谓的Ajax心仪已久,未敢轻动。不过这么好的一个东西,不碰一碰还真不行,尽管没有一点Js基础,还是先看看再说吧,哪怕如天轰川那样从头再来也未尝不是好事。
首先在网上找了一个AtlasControlToolkit.exe(下载),Version1.0.60504.0,直接点击运行发现是个zip压缩包,解压后自动运行弹出一个Dos窗口,既而没有了迹象,打开VS2005也没有发现有什么改变。随后才发现打开了一个页面,刷新了一下才显示了一堆英文。大概说的就是这个东西的安装和使用,不过看了半天没看懂。
再来一次,直接用Wrar解压那个exe到一个文件夹,完成后发现里面有VS2005的项目文件,大喜,打开之,发现里面有两个项目,一个是AtlasControlToolkit,另一个是SampleWebSite。上面自动弹出的那个英文页面就是此例站点的首页。
明日要上班,到此为止。
武汉大学首届中国移动杯搜索大赛开始啦
协会成立后的又一大创举,但毕竟精力有限,规模谈不上盛大。
花三个小时做好了初赛的网上答题系统,结果赶上郑州的服务器遭攻击,上午刚搞好傍晚又掉了。等待吧。不知道是不是故意选在周末攻击我们的服务器,好在服务商也在积极响应。
移动很不错,支持力度很大,我们也希望人气再好一点。
http://www.infolit.cn ,有时间来看看哦
ASP.NET2.0(VB)+ACCESS的自定义登陆页
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Login.aspx.vb" Inherits="Login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Login</title>
<link href="Images/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width: 387px">
<tr>
<td style="width: 7px">
UserName</td>
<td>
<asp:TextBox ID="TextBoxU" runat="server"></asp:TextBox></td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBoxU"
ErrorMessage="*"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="width: 7px">
Password</td>
<td>
<asp:TextBox ID="TextBoxP" runat="server" TextMode="Password"></asp:TextBox></td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBoxP"
ErrorMessage="*"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="width: 7px">
</td>
<td>
<asp:Button ID="Button1" runat="server" Text="Login" /></td>
<td>
<asp:Label ID="LabelErr" runat="server"></asp:Label>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Register.aspx" Target="_self">Register</asp:HyperLink></td>
</tr>
</table>
</div>
</form>
</body>
</html>
————————————————————————————————————————
Imports System.Data.SqlClient
Imports System.Data
Imports System.Data.OleDb
Partial Class Login
Inherits System.Web.UI.Page
Public p As String ‘保存密码
Public t As Integer ‘保存登陆尝试次数
Public c As String ‘保存成员资格
Public Id As Integer
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
t += 1
If t < 5 Then
Dim ss As String
ss = System.Configuration.ConfigurationManager.ConnectionStrings("ilaConnectionString").ConnectionString
Dim conn As New OleDbConnection
conn.ConnectionString = ss
Dim cmd As New OleDbCommand
cmd.CommandText = "SELECT [Password],[Class],[Id] FROM [User] WHERE [Name] =?"
cmd.Connection = conn
‘ Create a OleDbParameter for each parameter in the stored procedure.
Dim userNameParam As New OleDbParameter("?", TextBoxU.Text)
cmd.Parameters.Add(userNameParam)
Dim reader As OleDbDataReader = Nothing
Try
conn.Open()
reader = cmd.ExecuteReader
reader.Read()
If reader.HasRows = False Then
reader = Nothing
Else
p = reader("Password").ToString
c = reader("Class").ToString
Id = reader("Id")
End If
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
If Not (reader Is Nothing) Then
reader.Close()
End If
If Not (conn Is Nothing) Then
conn.Close()
conn.Dispose()
GC.SuppressFinalize(conn)
End If
End Try
If p = TextBoxP.Text Then
Session("User") = TextBoxU.Text
Session("C") = c
Session("Id") = Id
Response.Redirect("Admin/Default.aspx")
Else
LabelErr.Text = "Sorry,login failed!"
End If
Else
LabelErr.Text = "You have failed more than five times."
End If
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
t = 0
End Sub
End Class
听同学说只插路由器的lan口就可以当hub了
用路由器替代hub上校园网一直是个问题,前些日子还不得不买了一个hub换下了8口的路由器,不过后来又上了电信的号。
今天一个图专的师妹把这事搞定了,她说只要不插WAN口就行了。我汗!
月字是半月
月,象形,但不取圆而取偏,这其中有折中。
微软的个性头像实际上是对图像组织与检索的一个研究探索。你传一个相片给他,他反馈你一个神似的头像,人说五百罗汉即是众生相的归纳。微软的头像一共有多少种?
指纹唱片
让唱片机指针沿着指纹的轨迹走会出现什么声音呢?
这是不是一种由图像向声音的转化方式呢?
使用DataSoure+Detailview控件完成部分自定义数据插入
不知道标题是否说明白了,举个例子,要发布一个留言,我拖一个DataSoure进来,配置好数据源以后再拖一个Detailview,把DefaultMode设置为Insert,但是我需要把留言时间的字段设置为当前时间而又不允许用户修改,还有用户Id也是这样,那么怎么做呢?
把Detailview中的相关字段的绑定去掉,然后打开CodeBehind文件,在DataSoure的Inserting事件中写入:
SqlDataSource1.InsertParameters.Item(“MMDate”).DefaultValue = Date.Now
……………………
如此即可。当然在数据库中定义时间字段默认值也可以。比如:getdate()
自定义ASP.NET的角色管理
尽管当初安装VS2005的时候没有一同安装SQLExpress版的数据库,在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG下的machine.config文件中的<connectionStrings>依然为SQLExpress的连接字符串,所以,当我采用了SQL2005企业版的数据库来做角色管理的时候,连接出错。这时把这里的连接字符串改为目前连接的数据库连接字符串即可。
另外,在应用程序(网站)的根目录下的web.config文件中加入以下两部分内容(红色部分):
<connectionStrings>
<add name=”MyConnectionString” connectionString=”Data Source=你的连接字符串;Integrated Security=True”
providerName=”System.Data.SqlClient” />
<add name=”SqlServices” connectionString=”你的连接字符串;Integrated Security=True” providerName=”System.Data.SqlClient” />
</connectionStrings>
<roleManager enabled=”true” cacheRolesInCookie=”true” cookieName=”.ASPROLES”>
<providers>
<add connectionStringName=”SqlServices” applicationName=”MyApplication”
name=”SqlProvider” type=”System.Web.Security.SqlRoleProvider” />
</providers>
</roleManager>
如此即可。
参考:
2。在ASP.NET 2.0中配置 AspNetSqlMembershipProvider(AspNetSqlProvider )
2。在ASP.NET 2.0中配置 AspNetSqlMembershipProvider(AspNetSqlProvider )
DataGrid的自动编号问题
| 序号 | 内容 |
| 1 | Taye |
| 2 | BOx |
| 3 | Glass |
| 4 | StarCraf |
一、正序
A、AllowPaging=False情况下
| <asp:DataGrid id=”DataGrid1″ runat=”server”> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# Container.ItemIndex + 1%> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> |
就可以实现
不过更有趣的方法是使用这个方法
| <asp:DataGrid id=”DataGrid1″ runat=”server”> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# this.DataGrid1.Items.Count + 1%> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> |
也许有些人会觉得很奇怪为什么Items.Count会这样,而不是出来全部总合..但如果你了解绑定的过程时就容易理解.
[从上面来看就是在ItemCreated事件中进行绑定所以得到的Items.Count刚好是当前的序号]
B、AllowPaging=”True”下
如果你DataGrid支持分页则可以如下
| <asp:DataGrid id=”DataGrid1″ runat=”server” AllowPaging=”True”> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# this.DataGrid1.CurrentPageIndex * this.DataGrid1.PageSize + Container.ItemIndex + 1%> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> |
二、倒序的方法
| 序号 | 内容 |
| 4 | Taye |
| 3 | BOx |
| 2 | Glass |
| 1 | StarCraft |
由上面可以知道使用
this.DataGrid1.Items.Count – Container.ItemIndex + 1方法是不可能实现的,得到值而且全会为1
分页的情况下更是一样.所以一开始我们就要取得数据源的行数
.cs
| private int rowscount = 0; protected int RowsCount { get{ return rowscount;} set{ this.rowscount = value; } } private void Page_Load(object sender, System.EventArgs e) private void BindData() SqlDataAdapter sqlda = new SqlDataAdapter(str,cn); sqlda.Fill(ds); this.RowsCount = ds.Tables[0].Rows.Count; this.DataGrid1.DataSource = ds; } |
.aspx
| <asp:DataGrid id=”DataGrid1″ runat=”server” AllowPaging=”True”> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# RowsCount – DataGrid1.CurrentPageIndex * DataGrid1.PageSize – Container.ItemIndex %> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> |
当然如果是不是分页的情况一下更容易实现了.
转自:http://blog.csdn.net/mike1983/archive/2006/06/27/841725.aspx
续上篇
例如添加两个资源文件到此文件夹:
第一个资源文件是Resource.resx这是默认语言使用英语。
Name Value
Answer Hello there
PageTitle Sample Page
Question What is your name?
第二个资源文件是Resource.zh-cn.resx)使用中文。
Name Value
Answer 你好
PageTitle 示例页面
Question 你的名字叫什么?
Listing 3-18: A simple ASP.NET page that uses resource files
VB
<%@ Page Language=”VB” Culture=”Auto” UICulture=”Auto” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN”
“http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<script runat=”server”>
Protected Sub Page_Load()Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs)
Page.Title = Resources.Resource.PageTitle
End Sub
Protected Sub Button1_Click()Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Label1.Text = Resources.Resource.Answer & “ “ & Textbox1.Text
End Sub
</script>
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head id=”Head1” runat=”server”>
<title></title>
</head>
<body>
<form id=”Form1” runat=”server”>
<p><%= Resources.Resource.Question %></p><br />
<asp:TextBox ID=”Textbox1” Runat=”server”></asp:TextBox><br />
<asp:Button ID=”Button1” Runat=”server” Text=”Submit”
OnClick=”Button1_Click” />
<p><asp:Label ID=”Label1” Runat=”server”></asp:Label></p>
</form>
</body>
</html>
<%@ Page Language=”C#” Culture=”Auto” UICulture=”Auto” %>
<!DOCTYPE html PUBLIC “–//W3C//DTD XHTML 1.1//EN”
“http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<script runat=”server”>
protected void Page_Load(object sender, System.EventArgs e)

{
Page.Title = Resources.Resource.PageTitle;
}
protected void Button1_Click(object sender, System.EventArgs e)

{
Label1.Text = Resources.Resource.Answer + “ “ + Textbox1.Text;
}
</script>当这个程序运行时,会根据浏览器语言设定而选择使用不同的资源文件。如果语言设定为中文则会显示中文,否则为显示默认英文。
5.\App_LocalResources Folder
你也可以把资源文件添加到\App_LocalResources文件夹,只不过\App_GlobalResources文件夹是应用程序级别,而\App_LocalResources文件夹是页面级别。
6.\App_WebReferences Folder
你可以使用\App_WebReferences文件夹自动访在你的应用程序中引用的远程Web services。
7.\App_Browsers Folder
存贮在 \App_Browsers文件夹中的.browser文件,你也可以在\Windows\Microsoft.NET\Framework\v2.0xxxxx\
CONFIG\Browsers文件夹中看得到它,它主要是用来判断浏览器的兼容性的。
转自:http://www.cnblogs.com/zhhui/archive/2006/03/21/354545.html
Professional ASP.NET 2.0之应用程序文件夹-Application Folders
\App_Code文件夹是存贮classes,.wsdl文件和typed datasets的地方。你的解决方案中的所有页面可以自动访问存贮在这个文件夹的任何一个项目。如果这些项目是一个class (.vb or .cs),则Visual Studio 2005会自动检测并编译它;也会自动地创建源于.wsdl文件的XML Web service proxy class;或者一个源于.xsd文件的一个typed dataset。
下面看一个在你解决方案中使用\App_Code文件夹的简单class的例子:
首先在\App_Code文件夹中建立一个Calculator.vb 或 Calculator.cs文件,如下所示:
Listing 3-14: The Calculator class
VB
Imports Microsoft.VisualBasic
Public Class CalculatorClass Calculator
Public Function Add()Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
Return (a + b)
End Function
End Class
using System;
public class Calculator

{
public int Add(int a, int b)

{
return (a + b);
}
}Listing 3-15: An .aspx page that uses the Calculator class
VB
<%@ Page Language=”VB” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN”
“http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<script runat=”server”>
Protected Sub Page_Load()Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myCalc As New Calculator
Label1.Text = myCalc.Add(12, 12)
End Sub
</script>
<%@ Page Language=”C#” %>
<!DOCTYPE html PUBLIC “–//W3C//DTD XHTML 1.1//EN”
“http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<script runat=”server”>
protected void Page_Load(object sender, System.EventArgs e)

{
Calculator myCalc = new Calculator();
Label1.Text = myCalc.Add(12, 12).ToString();
}
</script>首先在\App_Code文件夹中添加两个子文件夹:一个 \VB 文件夹和一个 \CS 文件夹。
\App_Code
\VB
Add.vb
\CS
Subtract.cs
其次修改web.config文件如下:
Listing 3-17: Structuring the web.config file so that classes in the \App_Code folder can use different languages
<compilation>
<codeSubDirectories>
<add directoryName=”VB”></add>
<add directoryName=”CS”></add>
</codeSubDirectories>
</compilation>
2.\App_Data Folder
\App_Data文件夹是应用程序存贮数据的地方,可以包括Microsoft SQL Express 文件(.mdf files), Microsoft Access 文件(.mdb files), XML 文件等。
3.\App_Themes Folder
\App_Themes文件夹是存贮asp.net 2.0新特性主题需要使用的 .skin 文件, CSS文件和images文件的地方。
asp.net中使用基于角色role的Forms验证
asp.net中使用基于角色role的Forms验证,大致经过几下四步:
1.配置系统web.config
<authentication mode=”Forms” >
<forms name=”.yaoCookies” loginUrl=”/duan/Manage/login.aspx” protection=”All”
timeout=”20″ path=”/” />
</authentication>
</system.web>
其中<authentication mode= “forms”> 表示本应用程序采用Forms验证方式。
1). <forms>标签中的name表示指定要用于身份验证的 HTTP Cookie。默认情况下,name 的值是 .ASPXAUTH。采用此种方式验证用户后,以此用户的信息建立一个FormsAuthenticationTicket类型的身份验证票,再加密序列化为一个字符串,最后将这个字符串写到客户端的name指定名字的Cookie中.一旦这个Cookie写到客户端后,此用户再次访问这个web应用时会将连同Cookie一起发送到服务端,服务端将会知道此用户是已经验证过的.
2). <forms>标签中的loginUrl指定如果没有找到任何有效的身份验证 Cookie,为登录将请求重定向到的 URL。默认值为 default.aspx。loginUrl指定的页面就是用来验证用户身份的,一般此页面提供用户输入用户名和密码,用户提交后由程序来根据自己的需要来验证用户的合法性(大多情况是将用户输入信息同数据库中的用户表进行比较),如果验证用户有效,则生成同此用户对应的身份验证票,写到客户端的Cookie,最后将浏览器重定向到用户初试请求的页面.一般是用FormsAuthentication.RedirectFromLoginPage 方法来完成生成身份验证票,写回客户端,浏览器重定向等一系列的动作.
public static void RedirectFromLoginPage( string userName, bool createPersistentCookie, string strCookiePath );
其中:
userName: 就是此用户的标示,用来标志此用户的唯一标示,不一定要映射到用户账户名称.
createPersistentCookie: 标示是否发出持久的 Cookie。
若不是持久Cookie,Cookie的有效期Expiration属性有当前时间加上web.config中timeout的时间,每次请求页面时,在验证身份过程中,会判断是否过了有效期的一半,要是的话更新一次cookie的有效期;若是持久cookie,Expiration属性无意义,这时身份验证票的有效期有cookie的Expires决定,RedirectFromLoginPage方法给Expires属性设定的是50年有效期。
strCookiePath: 标示将生成的Cookie的写到客户端的路径,身份验证票中保存这个路径是在刷新身份验证票Cookie时使用(这也是生成Cookie的Path),若没有strCookiePath 参数,则使用web.config中 path属性的设置。
这里可以看到,此方法参数只有三个,而身份验证票的属性有七个,不足的四个参数是这么来的:
IssueDate:Cookie发出时间由当前时间得出,
Expiration:过期时间由当前时间和<forms>标签中的timeout参数算出。此参数对非持久性cookie有意义。
UserData:这个属性可以用应用程序写入一些用户定义的数据,此方法没有用到这个属性,只是简单的将此属性置为空字符串,请注意此属性,在后面我们将要使用到这个属性。
Version: 版本号由系统自动提供。
RedirectFromLoginPage方法生成生成身份验证票后,会调用FormsAuthentication.Encrypt 方法,将身份验证票加密为字符串,这个字符串将会是以.ASPXAUTH为名字的一个Cookie的值。
这个Cookie的其它属性的生成:
Domain,Path属性为确省值,Expires视createPersistentCookie参数而定,若是持久cookie,Expires设为50年以后过期;若是非持久cookie,Expires属性不设置。
生成身份验证Cookie后,将此Cookie加入到Response.Cookies中,等待发送到客户端。
最后RedirectFromLoginPage方法调用FormsAuthentication.GetRedirectUrl 方法获取到用户原先请求的页面,重定向到这个页面。
3). <forms>标签中的timeout和path,是提供了身份验证票写入到Cookie过期时间和默认路径。
以上就是基于Forms身份验证的过程,它完成了对用户身份的确认。
2.在受保护的文件夹如Manage下创建一web.config文件,内容如
<!–指定对整个Manage目录的访问权限–>
<system.web>
<authorization>
<!–多个角色用,分隔–>
<allow roles=”admin,user”/>
<deny users=”*” />
</authorization>
</system.web>
<!–也可控制某个页的权限
<location path=”AnnounceList.aspx”>
<system.web>
<authorization>
<allow roles=”admin”/>
<deny users=”*” />
</authorization>
</system.web>
</location>
<location path=”ConfigInfo.aspx”>
<system.web>
<authorization>
<allow roles=”users”/>
<deny users=”*” />
</authorization>
</system.web>
</location>
–>
</configuration>
注:此配置内容也可以加入到系统的web.config文件中,注意加入位置:
……..
</system.web>
<location path=”Manage/AnnounceList.aspx”>
<system.web>
<authorization>
<allow roles=”admin”/>
<deny users=”*” />
</authorization>
</system.web>
</location>
</configuration>
<allow>标签表示允许访问,其中的属性
1). users:一个逗号分隔的用户名列表,这些用户名已被授予对资源的访问权限。问号 (?) 允许匿名用户;星号 (*) 允许所有用户。
2). roles:一个逗号分隔的角色列表,这些角色已被授予对资源的访问权限。
3). verbs:一个逗号分隔的 HTTP 传输方法列表,这些 HTTP 传输方法已被授予对资源的访问权限。注册到 ASP.NET 的谓词为 GET、HEAD、POST 和 DEBUG。
<deny>标签表示不允许访问。其中的属性同上面的。
在运行时,授权模块迭代通过 <allow> 和 <deny> 标记,直到它找到适合特定用户的第一个访问规则。然后,它根据找到的第一项访问规则是 <allow> 还是 <deny> 规则来允许或拒绝对 URL 资源的访问。Machine.config 文件中的默认身份验证规则是 <allow users=”*”/>,因此除非另行配置,否则在默认情况下会允许访问。
那么这些user 和roles又是如何得到的呢?下面看一下授权的详细过程:
1). 一旦一个用户访问这个网站,就行登录确认了身份,身份验证票的cookie也写到了客户端。之后,这个用户再次申请这个web的页面,身份验证票的cookie就会发送到服务端。在服务端,asp.net为每一个http请求都分配一个HttpApplication对象来处理这个请求,在HttpApplication.AuthenticateRequest事件后,安全模块已建立用户标识,就是此用户的身份在web端已经建立起来,这个身份完全是由客户端发送回来的身份验证票的cookie建立的。
2). 用户身份在HttpContext.User 属性中,在页面中可以通过Page.Context 来获取同这个页面相关的HttpContext对象。对于Forms验证,HttpContext.User属性是一个GenericPrincipal类型的对象,GenericPrincipal只有一个公开的属性Identity,有个私有的m_role属性,是string[]类型,存放此用户是属于哪些role的数组,还有一个公开的方法IsInRole(string role),来判断此用户是否属于某个角色。
由于身份验证票的cookie中根本没有提供role这个属性,就是说Forms身份验证票没有提供此用户的role信息,所以,对于Forms验证,在服务端得到的GenericPrincipal 用户对象的m_role属性永远是空的。
3). GenericPrincipal. Identity 属性是一个FormsIdentity类型的对象,这个对象有个Name属性,就是此用户的标示,访问授权就是将此属性做为user来进行授权验证的。FormsIdentity还有一个属性,就是Ticket属性,此属性是身份验证票FormsAuthenticationTicket类型,就是之前服务器写到客户端的身份验证票。
服务器在获取到身份验证票FormsAuthenticationTicket对象后,查看这个身份验证票是不是非持久的身份验证,是的话要根据web.config中timeout属性设置的有效期来更新这个身份验证票的cookie(为避免危及性能,在经过了超过一半的指定时间后更新该 Cookie。这可能导致精确性上的损失。持久性 Cookie 不超时。)
4). 在HttpApplication.ResolveRequestCache事件之前,asp.net开始取得用户请求的页面,建立HttpHandler控制点。这就意味着,在HttpApplication.ResolveRequestCache事件要对用户访问权限就行验证,看此用户或角色是否有权限访问这个页面,之后在这个请求的生命周期内再改变此用户的身份或角色就没有意义了。
以上是Forms验证的全过程,可以看出,这个Forms验证是基于用户的,没有为角色的验证提供直接支持。身份验证票FormsAuthenticationTicket 中的Name属性是用户标示,其实还有一个属性UserData,这个属性可以由应用程序来写入自定义的一些数据,我们可以利用这个字段来存放role的信息,从而达到基于角色验证的目的。
3.登录页
private void Button1_Click(object sender, System.EventArgs e)
{
//实体类AdminUserVO对应AdminUser用户表。
AdminUserVO adminUserVO = new AdminUserVO();
adminUserVO.Uname
= UserName.Text.Trim();adminUserVO.Upwd = UserPwd.Text.Trim();
adminUserVO.LastIP = HttpContext.Current.Request.UserHostAddress;
adminUserVO.LastTime = DateTime.Now;
bool flag = (new LoginDAO()).Chk(adminUserVO);
if (flag)
{
//非角色验证时可以用这句:
//System.Web.Security.FormsAuthentication.SetAuthCookie(UserName.Text.Trim(),false);
//创建角色验证信息,把role信息写入到UserData中
SetLoginCookie(adminUserVO,adminUserVO.Roles.ToLower());
HttpContext.Current.Response.Redirect(“Main.aspx“);
}
else
{
HttpContext.Current.Response.Write(“登录失败“);
}
}
public static void SetLoginCookie(AdminUserVO u, string roles)
{
//建立身份验证票对象
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket (1,u.Uname, DateTime.Now, DateTime.Now.AddMinutes(30), false,roles,“/“);
//加密序列化验证票为字符串
string hashTicket = FormsAuthentication.Encrypt (ticket) ;
HttpCookie userCookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashTicket);
HttpContext.Current.Response.Cookies.Add(userCookie);
}
FormsAuthenticationTicket参数说明:
FormsAuthenticationTicket(
int version, //设为1,版本号由系统自动提供
string name, //用户标示,获取与身份验证 Cookie 关联的用户名
DateTime issueDate, //Cookie 的发出时间, 设置为 DateTime.Now
DateTime expiration, //获取 Cookie 过期的日期/时间
bool isPersistent, //是否持久性(根据需要设置,若是设置为持久性,在发出cookie时,cookie的Expires设置一定要设置),如果已发出持久的 Cookie,则返回 true。否则,身份验证 Cookie 将限制在浏览器生命周期范围内。
string userData, //获取存储在 Cookie 中的应用程序定义字符串,这里用上面准备好的用逗号分割的role字符串
string cookiePath // 返回发出 Cookie 的路径。注意,窗体的路径设置为”/”,这要同发出cookie的路径一致,因为刷新cookie要用这个路径。由于窗体区分大小写,这是为了防止站点中的 URL 的大小写不一致而采取的一种保护措施。
);
4.Global.asax.cs
{
HttpApplication app = (HttpApplication) sender;
HttpContext ctx = app.Context ; //获取本次Http请求的HttpContext对象
if (ctx.User != null)
{
if (ctx.Request.IsAuthenticated == true) //验证过的一般用户才能进行角色验证
{
System.Web.Security.FormsIdentity fi = (System.Web.Security.FormsIdentity)ctx.User.Identity ;
System.Web.Security.FormsAuthenticationTicket ticket = fi.Ticket ; //取得身份验证票
string userData = ticket.UserData;//从UserData中恢复role信息
string[] roles = userData.Split (‘,‘) ; //将角色数据转成字符串数组,得到相关的角色信息
ctx.User = new System.Security.Principal.GenericPrincipal (fi, roles) ; //这样当前用户就拥有角色信息了
}
}
}
注:如果使用HttpModule的话,此处代码应该加入在AuthenticateRequest事件中。
转自:http://www.cnblogs.com/yao/archive/2006/06/24/434783.html
用户控件中引用图片时的路径设置——相对路径
我把一堆用户控件放在一个子目录中,但当这些控件放在页面上时,它们之内引用的图片却依然是相对于这个控件所在目录的路径出现,所以不得不加上~来从根目录往下找。
用CSS+div控制字符串显示长度
日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff(‘minute’,f开始时间,getdate())>5
ASP.NET视图状态验证MAC失败
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.Web.HttpException: 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
源错误:
只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL:
|
|
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
.net文件上传代码实例
<%@ Import Namespace=”System.IO” %>
<%@ page Language=”C#” debug=”true” %>
<html>
<head>
<title>上传文件 , http://www.chinabs.net </title>
<script language=”C#” runat=”server”>
//This method is called when the “upload” button id pressed
public void UploadFile(object sender , EventArgs E)
{
//检查上传文件不为空
if(myFile.PostedFile!=null)
{
string nam = myFile.PostedFile.FileName ;
//取得文件名(抱括路径)里最后一个”.”的索引
int i= nam.LastIndexOf(“.”);
//取得文件扩展名
string newext =nam.Substring(i);
//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
DateTime now = DateTime.Now;
string newname=now.DayOfYear.ToString()+myFile.PostedFile.ContentLength.ToString();
//保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
//注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里”\”必须用”\\”代替
myFile.PostedFile.SaveAs(Server.MapPath(“\\upload\\”+newname+newext));
//得到这个文件的相关属性:文件名,文件类型,文件大小
fname.Text=myFile.PostedFile.FileName;
fenc.Text=myFile.PostedFile.ContentType ;
fsize.Text=myFile.PostedFile.ContentLength.ToString();
}
}
</script>
</head>
<body>
<center>
<h3> 文件上传的实例, 来自<a href=”http://www.chinabs.net”>中国BS网</a></h3>
<form id=”uploderform” method=”post” action=”FileUpload.aspx” enctype=”multipart/form-data” runat=”server” >
<table border=”1″ cellspacing=”2″ cellpadding=”2″ >
<tr> <td><h5>选择要上传的文件:</h5></td</tr>
<tr>
<td>
<input type=”file” id=”myFile” runat=”server” NAME=”myFile”>
</td>
</tr>
<tr><td>
<input type=”button” value=”上 传” OnServerClick=”UploadFile” runat=”server” ID=”Button1″ NAME=”Button1″>
</td></tr>
</table>
</form>
<br>
<br>
<table border=”1″ cellspacing=”2″>
<tr><td><b>文件资料</b></td>
<td> </td>
</tr>
<tr>
<td>文件名 :</td>
<td><asp:label id=”fname” text=”” runat=”server” /></td></tr>
<tr>
<td>文件类型 :</td>
<td><asp:label id=”fenc” runat=”server” /></td></tr>
<tr>
<td>文件大小 :(in bytes)</td>
<td><asp:label id=”fsize” runat=”server” /></td></tr>
</table>
<br>
<br>
<br>
</center>
</body>
</html>
input 按钮使用图片样式
<input name=”submit” type=”image” src=”../image/submit.jpg” value=”提交”/>
需要注意的是添加src的时候,相应要把type改为image。
服务器应用程序不可用
服务器应用程序不可用
您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。
管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。
——————————————————————————————————————————————
此问题因1.1与2.0版的.net程序共用一个应用程序池造成。将不同版本的应用程序从应用程序池独立出来即可。
解决form前后空白问题
页面中插入一个form表单后其位置前后会各出现一个空白条,如果前后有内容。
这时可把form行放在<table>之内,即可解决。
另外一个更加规范的方法是在form中加入 style=”margin:0px”,因为.net不允许<form>放在<table>内部。
访问 IIS 元数据库失败
访问 IIS 元数据库失败。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败。
用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库(如
IIS://servername/W3SVC)的读访问权。有关如何修改元数据库权限的信息,请参见
http://support.microsoft.com/?kbid=267904。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[HostingEnvironmentException: 访问 IIS 元数据库失败。]
System.Web.Configuration.MetabaseServerConfig.MapPathCaching(String
siteID, VirtualPath path) +690
System.Web.Configuration.MetabaseServerConfig.System.Web.Configuration.IConfigMapPath.MapPath(String siteID, VirtualPath vpath) +9
System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath
virtualPath, Boolean permitNull) +174
System.Web.CachedPathData.GetConfigPathData(String configPath) +398
System.Web.CachedPathData.GetConfigPathData(String configPath) +263
System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath,
Boolean permitPathsOutsideApp) +166
System.Web.Configuration.RuntimeConfig.GetLKGRuntimeConfig(VirtualPath
path) +187
——————————————————————————–
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
解决方案:
在运行中输入cmd,然后在MSDOS环境下输入:
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,回车
然后输入aspnet_regiis /r ,回车,问题解决。
用VS2005开发ASP.NET 2.0数据库程序 (转载)
| |||||||
| |||||||
常见.Net 英文专业词汇收集
accelerator 快捷键
accelerator mapping 快捷键映射
accelerator table 快捷键对应表
access modifier 访问修饰符
Access Pack 访问包
access specifier 访问说明符
access violation 访问冲突
accessibility 辅助功能
accessibility domain 可访问域
Accessibility Options 辅助功能选项
accessor 访问器
action 操作
Active Directory hierarchy Active Directory 层次结构
active document 活动文档
Active Document Containment 活动文档包容
active end 活动结尾
active object 活动对象
active point 活动点
Active Template Library 活动模板库
ActiveX Component ActiveX 组件
ActiveX control container ActiveX 控件容器
ActiveX Control Interface Wizard ActiveX 控件接口向导
ActiveX-enabled 支持 ActiveX 的
adaptor 适配器
Add key 加号键
Add-In 外接程序
Address Book 通讯簿
address space 地址空间
advise sink 通知接收
aggregate 聚合
Airbrush 喷枪
algorithm 算法
allocation hook 分配挂钩
allocator 分配器
Alternate text 替换文字,备用文本
animation control 动画控件
apartment-model threading 单元模型线程
Apply Now 立即应用
apply to similar 应用到相似项
argument 参数
array initializer 数组初始值设定项
array rank 数组秩
arrow cap 箭头帽
ArrowHourGlass 箭头沙漏
ArrowQuestion 箭头问号
article family 文章族
assembly 程序集;汇编
assembly manifest 程序集清单
assert 断言
associate 关联
asynchronous moniker 异步名字对象
asynchronous peek operation 异步查看操作
atomic operation 原子操作
attached table 附加表
Attributed Component Wizard 属性化组件向导
Attributed Programming 属性化编程
Attributes Property Attributes 属性
Authentication 身份验证
authorable 可创作(的)
Auto completion for commands 自动完成命令
Auto Increment 自动增加
Auto Syntax Check 自动语法校验
automation 自动化
automation-enabled 启用自动化
base implementation 基实现
be paged to disk 分页到磁盘
binary operator 二元运算符
bind 绑定
binder 联编程序
binding constraints 绑定约束
bit field 位域
bitmask 位屏蔽
bitwise 按位
bitwise complement operator 按位求补运算符
bit-wise equivalent 位等效数
bitwise or operator 位 or 运算符
block 块
block if If 块
blocking UI 模块化用户界面
Book Edition 试用版
bootstrapper 引导程序
bottom margin 下边距
bound 界限;绑定
bound control 绑定控件
bounding rectangle 边框
box 装箱 (v.)
break 分页;分行;中断 (v.);断点 (n.)
break compatibility 破坏兼容性
break execution 中断执行
breakpoint 断点
Bring Forward 上移一层
Bring In Front 上移一层
Bring to Front 置于顶层
broker 中间装置
Browse With 浏览方式
bubbling 冒泡
bucket 存储桶
buddy 合作者
buffer 缓冲区
build 生成 (v.);版本 (n.);编译
Builder 生成器
building block 构造块
built-in 内置
bulk row fetching 批量取行
Bulleted List 项目符号列表
business logic 业务逻辑
business process 业务处理
business rule 业务规则
cache 缓存
cacheability 可缓存性
call 调用
call back 回调
call invoke 调用 invoke(调用)
called procedure 被调用过程
caller 调用方
calling code 呼叫代码
calling convention 调用约定
calling process 调用进程
call-out interception 调出侦听
caption 标题
caret 插入符号
carriage return-linefeed 回车-换行
cascade 层叠,级联
case statement case 语句
case-sensitive 区分大小写
cast 强制转换
catalog 目录
catch block catch 块
catch handler catch 处理程序
category 类别
caution 警告
cell 单元格
cell padding 单元格填充
cell span 单元格跨距
challenge-response 质询-响应
check box 复选框
check constraint CHECK 约束
check in 签入
check out 签出
check state 复选状态
check the entry 检查项
check the number 检查数目
checkout 签出
child 子级(注:单独使用);子(注:构成词组)
child code 子代码
class 类
Class Builder Utility 类生成器实用工具
Class Library Reference 类库参考
classic 传统(型);传统风格(的);经典
clean 无变动(注:与 dirty 相对)
client area 工作区
Client Batch cursor library 客户端批处理游标库
client coordinate 客户端请求
client-based 基于客户端的
client-side 客户端
clip 剪裁;剪辑
Clipboard format 剪贴板格式
Clipboard-viewer chain 剪贴板查看器链
clipping region 剪辑区域
close parenthesis 右括号
Close region 临近区域
close up 闭合
closing set of angle bracket 结束双尖括号
closing tag 结束标记
CLS compliant 符合 CLS
clustered index 聚集索引
code pane 代码窗格
codebase 基本代码
code-behind 代码隐藏
Collapse to Definitions 折叠到定义
Collate 逐份打印
color scheme 配色方案
column span 列跨距
COM Classic COM 传统型
combinator 连结符
combo box 组合框
command handler 命令处理程序
Command line builds 命令行编译
command routing 命令传送
comment token 注释标记
compact 压缩;紧凑
compact version 精简版本
comparer 比较器
complex-bound 复杂绑定
component 组件
component authoring 组件创作
Component Services 组件服务
component tray 组件栏
compose buffer 写缓冲区
composition window 撰写窗口
concatenation operator 串联运算符
concurrency 并发
Congratulations 祝贺您
connection map 连接映射
connection point 连接点
considerations 连接字符串
constituent control 构成控件
constructor 构造函数
constructor initializer 构造函数初始值设定项
Consumer Template 使用者模板
contextify 实现上下文;对…实现上下文
contiguous 连续
contiguous range 连续范围
contract 连续范围
Control Containment 控件包容
Control Flow 控制流
conversion 转换
Cookieless 无 Cookie
coordinated universal time 协调通用时间
Copy 副本;复制
corrupt 损坏
Cracker 黑客
critical section 临界区
cross-process 进程间
cross-thread 线程间
CSS Specific CSS 特定
Cursor 光标;游标
Custom Actions Management 自定义操作管理
custom marshalling 自定义封送处理
cycle through 循环通过
Cyclic Redundancy Check 循环冗余校验 (CRC)
Dangling Reference 虚引用
data compartment 数据舱
data consumer 数据使用者
data store 数据存储区
data-aware 数据识别
database diagram 数据库关系图
datagram 数据报
DDE conversation DDE 对话
deallocate 解除分配;释放
decimal separator 小数点分隔符
decorated name 修饰名
Deep Copy 深层复制
default case-insensitive hash code provider 不区分大小写的默认哈希代码提供程序
default implementation 默认实现
Defect Report 缺陷报告
deformatter 反格式化程序
degrade 降低
degrade gracefully 完全降低
delegate 委托
delineated square 画有边线的方形
denial of service attack 拒绝服务攻击
Dep. 部署,deploy的缩写
dependency 依赖项
dependent file 依赖项目
deploy 部署
Deployment 部署
deprecate 否决
derive 派生
derived 导出(的);派生(的)
derived class 派生类
derived field 导出字段
derived type 派生类型
deserialize 反序列化
Designer Verb 设计器谓词
destination 目标
destination device 目标设备
destination rectangle 目标矩形
destroy 损坏
destructor 析构函数
detect 检测
Developer 开发者,开发人员,开发商
device 设备
device dependent 设备相关
Device Image 设备映像
Devide key 除号键
Diagram 关系图
diagram pane 关系图窗格
Diagram Surface 关系图面
dialog 对话,对话框
Diff-Merge 差异-合并
digest authentication 宿主;主应用程序;主机;主;承载
dimmed appearance 浅灰色
directive 指令
dispatch 调度
dispinterface 调度接口
Doc Relative 与文档相关的
Dock 停靠
dock 停靠
dockable 可停靠的
dominant 主导
downcast 向下转换
drop shadow 投影
drop target 放置目标
dump 转储
Elapsed Time 运行时间
Embedded 嵌入式的
encapsulate 封装
enclosing 封闭的
encompassing 包含的
Enlistment 版本
entry 条目,项
enumerate 枚举
enumerator 枚举数
enum-type 枚举类型
equivalent 等效
Erase 清除
escape 转义
evaluate 计算
evaluator 计算器
exception 异常
exception throw 引发异常
exclusive or XOR
explicit 显式
expose 公开
extend 扩展
Extensibility 扩展性
face 表面
factorability 可分解性
fast line 快速扫描线
favor 优选的
feature 功能
fetch 获取
field 字段
figure 图形;图例;数据
Filled Rectangle 实心矩形
filter 筛选;筛选器
finalize 完成
fire 激发
flow off 超出
footer 脚注
For details, see 有关详细信息,请参阅
foreign 外部的
form 形成,构造窗体;表单
Forms Authentication Forms 身份验证
four headed arrow 四向箭头
fractional-constants 小数常数
Free Bytes 可用字节
free threaded marshaler 自由线程封送拆收器
free-form modeling 自由窗体建模
friend 友元
Full Control component 完全控制组件
Full-Width Alpha-Numeric 全角字母-数字
Full-Width Katakana 全角片假名
fully populated 完全填充
fully qualified name 完全限定名
function profiling 函数分析
function timing 函数执行时间
Further Reading 其他阅读材料
gain access 获得访问权限
gain control 获得控制
Gallery 库
Garbage Collector 垃圾回收器
general accounting module 常规计帐模块
Gets or sets 获取或设置
global 全局的
Glyph 标志符号
Gozer Gozer;Gozer 处理
graphical representation 图形化表示形式
grid 网格
guarded section 保护区域
Guide Settings 参考线设置
Half-Width 半角
Half-Width Alpha-Numeric 半角字母-数字
Handle is not pinned 句柄未被固定
handler 处理程序
handy 快捷
hard-code 硬编码
hash 散列 (v.);哈希
hatched pattern 阴影图案
header control 标头控件
heuristics 试探法
hierarchical outline 分层大纲
hierarchy 层次结构
high-order 高序位
horizontal guideline 水平准线
host 主机,宿主
Hotfix 修补程序
hover 悬停
hub and spoke model 轮辐式模型
human-readable 可读的
identity operator 恒等运算符
illegal 非法
illustrate 阐释
IME 输入法编辑器(Input Method Editor)
impersonation 模拟
implementer 实施者
implicit 隐式
import 导入,输入
in spec 规格中
In this Section 本节内容
incoming 传入(的)
Independent 独立
indexer 索引器
Indicator Margin Click 单击指示器边距
inference 推理
infix notation 中缀符
initial capacity 初始容量
injected code 插入的代码
injection attack 注入式攻击
Inline 内联
in-place 就地
input mask 输入掩码
Input Method Editor 输入法编辑器
Install on Demand 即需即装
instantiate 实例化
Instantiate Live Controls 实例化活控件
intaller 安装程序
integrated 集成的
Intellisense 智能感知
interact 交互
interface 接口;界面
internal 内部的
interoperate 互用;交互操作
interrupt 中断
intrinsic 内部的
Invalid literal exponent 无效指数
invocation 调用
invocation list 调用列表
Is Dirty 已更新
isolated storage 独立存储
issue 发出
item 条目;项
iterate through 循环访问
iteration 迭代
jagged 交错的
join 联接
journal 日志,日记
jump 跳转
junction table 联接表
Just-in-time 实时
key 关键字;键;项(注:与注册表有关时)
key as string 键为字符串
key feature 主要功能
key file 密钥文件
keyset-driven 键集驱动
keyset-type 键集类型
kill 注销;取消
Knowledge Base 知识库
labeled statement 标记语句
LAME! 报告错误!
language equivalents 等效语言
lead byte 前导字节
least significant byte 最低有效字节
ledger 帐目型
left outer join 左外部联接
less derived 派生程度较小的
leverage (综合)利用;平衡
lexical scope 词法范围
lifetime 生存期
line break 分行符
list box 列表框
listener 侦听器,侦听者
Lite control Lite 控件
literal literal;文本
literal character 原义字符
load factor 加载因子
local 局部的;本地的
local machine 本地计算机
local storage 本地存储区
Locale 区域设置
locale 区域设置
locator 定位器
look up 查阅,查找
lookahead 预测先行
loop through 依次通过
loosely coupled 松耦合
low-order 低序位
Macros Dialog 宏对话
mainframe 主框架;大型机
managed 托管的
manifest 清单
many-to-many 多对多
map 地图,映射
mapping mode 映射模式
margin 边距; 空白
margin indicator 边距指示符
marquee 字幕
marshal 封送
marshal-by-reference 引用封送
marshaler 封送拆收器
mask 屏蔽;掩码
Match Case 大小写匹配
message pump 消息泵
middle-tier 中间层
migrate 迁移
Misc 杂项
Miscellaneous 杂项
moniker 名字对象
more derived 派生程度较大的
More Information 详细信息
more recent 较新的
multibyte 多字节
multicast 多路广播
Multiple-Inheritance 多重继承
Multiply key 乘号键
mutually exclusive 互相排斥
naked attribute naked 属性
Naked Function Calls 裸函数调用
named 命名的
namespace 命名空间
nanosecond 毫微秒
narrowing conversion 收缩转换
native 本机
navigator 导航器
New any 新建项
New anyAttribute 新建属性
New Technology file system NTFS 文件系统
newline 换行;换行符
No conversions are performed 未进行转换
nonaggregated 非聚集
non-scatter 非散点程序集
notation 表示法
nudge 微移
Numbered List 编号列表
Obfuscation 模糊处理
object-oriented programming 面向对象的编程
occurrence 匹配项;(视上下文也可省略不译)
On button down 当按钮按下
one-based 从一开始的
One-Click Web Hosting 鼠标一点,轻松发布到 Web
one-liner 单行方式
one-to-many 一对多
one-to-one 一对一
open 打开;开始;开放;左侧的(对于括号等成对的标记)
Open Database Connectivity 开放式数据库连接
open parenthesis 左括号
Open With 打开方式
opening brace 左大括号
opening tag 开始标记
operator 运算符;操作符
optimistic concurrency 开放式并发
ordinal 序号
Out of Memory 内存不足
Out Parameter 输出接口
outgoing interface 输出接口
Outlined Rectangle 空心矩形
out-of-band data 带外数据
out-of-process 进程外
Overall Steps 全部步骤
overhead 系统开销
overlap 重叠
overload 重载
Overload Induction 重载归纳
overload resolution 重载决策
overridable public function 可重写的公共函数
override 重写
Overview 概述
overwrite 改写
owned window 附属窗口
owner-drawn 所有者描述的
ownership 所属权
pack pragma 压缩杂注
package 打包
Package Body 包正文
padding 空白,边距(n.);填充
pager button 页导航按钮
pane 窗格
pass over 经过
pass-through 传递
peek 查看
peer 对方;对等;对方主机;同级
pending 挂起
per-column 按列的;基于列的;针对于列的
permission 权限
persistence 持久性;持久性存储
persister 持续程序
Pessimistic locking 保守式锁定
pie section 扇形区
pipe 管道
plate 盘片
pointer 点,指针
pointer-to-member 指向成员的指针(n.)
policy class 策略类
polymorphism 多态性
populate 填充
positioning 定位
postback 回发
post-processor 处理器后
potential mod by 0 潜在的以 0 求模
pragma 杂注
precedence 优先级
precompile 预编译
predefined 预定义的
preferences 首选项
preprocessor directive 预处理器指令
Presentation Tier 表示层
primitive 基元
principal 用户;主体
process 进程
profile 详细资料
profiler 分析器
profiling error 分析错误
Program 编程
programmatic access 编程访问
progress 进度
properly 正确地,适当地
property 属性
property attributes 属性特性
provider 提供程序
pseudo-marshalling 伪封送
publisher 出版商
push button 下压按钮
put area 放置区域
put pointer 放置指针
put up modal UI 提供模式用户界面
qualified name 限定名
qualifier 限定符
QuickStart 快速入门
radio check mark 选中标记
raise 引发
Rapid Application Development 应用程序快速开发
reader 读取器;阅读器
realign 重新对齐
rebar band rebar 带区
rebar control rebar 控件
Recordset 记录集
recurrence pattern 定期模式
recycle 回收
Redistributable 可再发行的
reference 引用
registrar 注册器
regular expression 正则表达式
related 相关的
related words 相关字
render 呈现
repeater 重复器
repository 储存库;库
reserve area 保留区域
reset 重置
reside 驻留
resident 驻留
resolve 解析
resolver 冲突解决程序
restore 还原
Retail configuration “发布”配置
rethrow 再次引发
retrieve 检索
revoke 撤消
rework 改编;返工
rich text 多格式文本
right outer join 右外部联接
root cause 根源
Root Relative 与根相关的
rootkey 根项
round trip 往返行程
routine 例程
row-major 行优先
Run Length Encoded 行程编码
run-time library 运行时库
salted hash Salted 哈希技术
satellite 附属
scatter assembly 散点程序集
schedule 安排 (v.)
schema 架构
scope resolution 范围解析
Scripting Host 脚本宿主
Scriptlet 脚本小程序
Section 区域;章节
See also 请参见
self-contained 独立的
self-join 自联接
self-referenced 自引用的
semi-trusted 不完全受信任的
Send Behind 下移一层
serialize 序列化
shadow 影像;镜像
shallow copy 浅表副本;浅表复制(copy 作动词时)
shared checkout 以共享方式签出
shift the focus 变换焦点
short circuit operator 短路运算符
short delay 短暂停留
shortcut key combinations 快捷组合键
sibling 同辈
signaled state 终止状态
significand 有效数
single tab stop 单个 Tab 停靠
single-dimensional 一维
single-document interface 单文档界面 (SDI)
Single-Inheritance 单一继承
sink 详细资料;分析
size grip 大小手柄
SizeAll 四向箭头
sizing grip 大小调整手柄
skeleton 主干
slash 斜杠
slider control 滑块控件
smart pointer 聪明指针
Snap-In 管理单元
snap-in 管理单元
snapshot 快照
specific to 特定于;针对
specifier 说明符
spin button control 数值调节钮控件
spin control 数值调节钮控件
Split Vertical In 左右向中央缩进
splitter 拆分器
splitter window 拆分窗口
spreadsheet 电子表格
stack frame 堆栈帧
stack walk 堆栈审核
standalone 独立
stand-alone 独立
starter application 起始应用程序
state bag 状态袋
statement 语句
stencil 模具
step a frame 通过一帧
Step By 调试方式
Step Into 逐语句;进入并单步执行;单步执行
Step Out 跳出
Step Over 逐过程
step through 逐句通过
step unit 单步执行单元
step-by-step 逐步骤
step-by-step details 详细步骤信息
step-by-step topics 分步指导的主题
stock 常用
straight quotation marks 直引号
streamer 流转化器
stress test 压力测试
string literal 字符串
stroke list 笔画列表
stub 存根
subkey 子项
subscriber 订户
subsequent 后面的
Substract key 减号键
superimposed 叠加的
Surpress banner 取消显示版权标志
surrogate web场
symbol store 符号存储区
symmetric key 对称密钥
tab 选项卡
Tab order Tab 键顺序
Tabbed 选项卡式的
tear-off 分开的
Technical Assistance 技术支持
technical note 技术说明
Technote 技术说明
Templated 模板化的
terminating line number emission 显示终止行号
This feature will remain uninstalled 将不安装此功能
thread 线程
threading 线程处理
threading model 线程模型
threshold 阈值
tick 刻度
tick mark 刻度线
tier 层
tightly coupled 紧耦合
to be supplied 待提供
to be written 待补
To Fit 合适大小
token 标记
Top margin 上边距
top-level 顶级
trace into 跟踪到
trackbar 跟踪条
trail byte 尾字节
transient 瞬态
trap 捕获
trappable 可捕获的
trigger 触发;触发器
truncate 截断
type specifier 类型说明符
typed 类型化的
typelib 类型库
typographic 版式
UI 用户界面
unattended execution 无人参与执行
unbox 取消装箱
underlying 基础
unescaped 非转义的
unit 单位,单元
Universal Coordinated Time 协调通用时间
unmanaged 非托管的
unmarshal 取消封送 (v.)
unsized 未确定大小的
upper bound 上限
upstream 上游
usage data 惯用数据
user interaction 用户交互
user-drawn 用户描述的
utility 实用工具
validator 验证程序
versionable 无版本冲突的
View 浏览,视图
virtual 虚拟
Walkthrough 演练
web farm web场,web园
web garden web园
Web-crawling Web 爬行遍历
wedge button 三角形按钮
well-behaved 功能良好的
well-defined 定义完善的
Whitespace 空白
wide-character 宽字符
widening 扩大
worker thread 辅助线程
Workspace 工作区
wrapper 包装
zero-based 从零开始的
zomby 僵停
这算第一次谈项目吗?
昨天晚上师姐约了我出去谈这个事情,还顺便送了我一条裤子。说起来这条子应该是女款的,有典型的特征,低腰,瘦,裤腿长。
其实自己知道出去谈总要准备些资料,但没有人帮我做,看了一天电脑,实在没有心思再搞什么材料了。所以直接坐车过去。
跟一个男人说了两三个小时,我对他们的业务不了解,所以基本上是问什么答什么。有时候两个人都不说话,让旁边看的飞飞很莫名。
我并不想留在武汉工作,我对这里不是很感兴趣。我更喜欢北京,不管那里曾经发生过什么。
美好的一天
尽管天气仍然很热,但这又是一个很有收获的一天,书稿翻译了几页,基本完成了今天的任务。下午王小光师兄带我来到他的一个同学的公司,算是又接了一单。
肖洋也是一个很帅气的师兄,他原来竟在桂四416住了三年,说起这个,交情就骤然加深了许多。而他对我在厕所门口开橱的行为大为感叹。
他让做的网站所涉及的资料都拷回来了,美工不错,代码也要写好,不能辜负了一番盛情。
这是怎样一个夜晚
公元2006年7月21日晚,这也并不是一个很特别的夜,只不过有点热,实在是无法再忍受四楼的炙烤,决心凭自己的运气和智慧以及胆量下来找个能过夜的地方。
经过一番努力,终于进入了理想的房间,通了电,还搬来了电脑,写下了这篇文字的时候,我正看中央台的同一首歌。虽然这并不是值得自豪的,但在这种严酷的环境中,谁不想为自己争得一点更好的条件呢?希望上天能够理解我们的处境。川大已经有人殉职了,我们不能再做无谓的牺牲。
实验室的气氛不错,工作效率还是很高的,我还是刚刚进入状态,以后会更努力的,虽然大四了才进入到这里,但毕竟只要珍惜会有很多收获。魏泉是个很有魅力的人,虽然我最近比较压抑,但他仍然在努力为实验室营造一个活泼积极的氛围。
目前的翻译工作至少还要持续八天,这也是最长的期限,我的第一个任务,应该好好完成。
其实.NET方面我还只是刚刚入门,说严重一点甚至是跟本没有理解其真正内涵。希望这个短短的假期有一个质的突破。这是我期盼已久的一刻,值得纪念。
平时第一份求职简历投出去了,到目前仍然没有消息,尽管是师兄推荐的,但我仍然感觉没有十分的把握。至少是一个心境的体验吧。
一个美丽的夜晚
在我最迷茫的时候,我突然发现了你,就在那栋高楼的楼道里。你静静地坐在楼梯上,闭着眼睛,听到有人来了,你抬起头,望了望我,然后又用眼皮垂下去遮住那两只大大的眼睛……
在我最迷茫的时候,我突然发现了你,就在那栋高楼的楼道里。你静静地坐在楼梯上,闭着眼睛,听到有人来了,你抬起头,望了望我,然后又用眼皮垂下去遮住那两只大大的眼睛。
我迟疑的从你身边走过,似曾相识的感觉,我转了几圈还是没找到上选修课的教室。我走回来时,你仍然坐在那里,一动不动。我试着在你身边坐下来,但始终保持一段距离。你看着我,我看着你,好长时间,直到一股凉风吹来,我身上打一个颤,才想起掏出手机故作发短信的样子。而你,也不再看我,低着头,依旧静静地坐着。我偷偷地看你,你却不曾抬一下眼皮。
楼上有人下来了,我有些惊恐,慌忙从你身边站起来,拿着书装作向楼下走去。可是下了两层,我还是不忍离去,听到楼道里又静了下来,我壮着胆子又走了回来,坐在原来的地方。你好像已经知道是我,头也不抬了。
你静静地坐着,我偷偷得看着你。后来就干脆把头放在双膝上,侧着脸盯着。终于,我按耐不住了,轻轻的问你:你叫什么名字?可可?乐乐?……你还是不理不睬,只是在有人走过的时候才稍稍地看一眼,好像就再也没有我的存在。
我又试着向你伸出手,最后竟触到了你的额头。可是你十分顺从的一动不动,任我理着你的额头,默默地接受我轻轻的抚摸。可是我住手了,我不能如此,毕竟我们才刚刚认识。
旁边又有人走过了,我没有动,你也没有动,任凭别人用好奇的眼光看着我们。
但直到最后,你也没有和我说一句话。我仍然不知道你的名字,你的住处;也不知道你为什么会坐在这里,心里在想些什么。我走了,但我永远都不会忘记这个夜晚,在武水主教四楼的楼梯上。希望还能见到你,如果我们果真还有未尽的缘分!
走的时候,我知道你曾偷偷得望了我一眼。
2004.9.21晚 于武水主教四楼楼道
——与一只小狗的奇遇