做网站与搞安全一般都离不开权限分配,网站权限一般都直接设置站点所在的虚拟目录的,也就是在虚拟目录的安全里添加internet来宾账户,并分配除完全控制外的所有权限;如果是.NET,还必须给ASP.NET用户配置除完全控制以外的权限!
一般情况下,这样就OK了,服务器上的一般网站都可以正常运行了!但现在我发现:C\WINDOWS\TEMP临时文件夹的权限分配对网站能否成功运行也有影响!
但前几天遇到2个情况:
一、ASP站点:
做版聚网站,稻草给的源代码,我过来测试时候,怎么都连不上数据库;我以为数据库连接代码出错,于是一点一点的测试,结果怎么都不行,运行到最后,还是没发现错误!代码如下:
<%
db="inc/xxx.asp"
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionTimeout = 10
Conn.Open connstr
If Conn.Errors.Count <> 0 Then
Conn.Close
Set ......
做网站与搞安全一般都离不开权限分配,网站权限一般都直接设置站点所在的虚拟目录的,也就是在虚拟目录的安全里添加internet来宾账户,并分配除完全控制外的所有权限;如果是.NET,还必须给ASP.NET用户配置除完全控制以外的权限!
一般情况下,这样就OK了,服务器上的一般网站都可以正常运行了!但现在我发现:C\WINDOWS\TEMP临时文件夹的权限分配对网站能否成功运行也有影响!
但前几天遇到2个情况:
一、ASP站点:
做版聚网站,稻草给的源代码,我过来测试时候,怎么都连不上数据库;我以为数据库连接代码出错,于是一点一点的测试,结果怎么都不行,运行到最后,还是没发现错误!代码如下:
<%
db="inc/xxx.asp"
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionTimeout = 10
Conn.Open connstr
If Conn.Errors.Count <> 0 Then
Conn.Close
Set ......
今天调试blend 3的一个Zune3D样例时, 运行后生成的是sliverlight程序, 由于我的机器是刚从vista升级到windows 7, iis都没有配置, 因此无法预览.现给出步骤:
(一. 配置IIS)
1. 打开"Control Panel" / "Programs" / "Turn Windows features on or off", 勾选"Internet Information Services", windows 7默认勾选里面WMT和WWWS的部分选项. 点击 "Ok", 退出.
2. 打开"Start / All Program" / "Administrtive Tools" / "Internet Information Services(IIS) Manager". 也可以直接在 "Start Menu"下直接搜索"IIS"
3. 点击左边树中"Site"节点, 选择"Default Web Site", 打开后选择"Default Web Site"右边的Actions, 单击"Start", 如果出现0x80070020的一个错误对话框的话, 是因为端口80被别的应用程序占用, 单击Actions的"Bindings..."按钮, 编辑默认的80端口为其他的端口, 比如81.
4. 单击Actions的"Restart", 选择"Browse *:81(http)"就会看到IIS的start页面.
(二, 配置自己的网站Zune3D)
1. 右击左边树中的"Application Pools", 选择弹出菜单的"Add Application Pool..."选项, 命名为"Zune3D", 确定退出.
2. 右击左边树中的"Sites", 选择弹出菜单 ......
看了招聘信息,没发现几个是招.net的,都是Java 或者C、C++ 。发现参与的项目经验在校园招聘已经没有优势了,
似乎外面更喜欢Java,但是个人感觉.NET会有很强大的趋势,所以还是学习学习,但是也不放弃C++的狂热,和windows编程的学习。
好的导师受益匪浅!! ......
转:http://www.cnblogs.com/kumaws/articles/web_architecture.html
相对于不同的需求,网站的大小,开发复杂度,成本,网站的架构也分许多种。
大多数小型网站,需求较为简单,安全性要求不高,开发时间短。一般这样的网站,还会有一个与数据库之间的交互。用Asp.Net中提供的控件,完全可以满足开发的要求。一般的架构如下图所示:
表示层通过数据源控件如SqlDataSource+数据控件如GridView就可以直接与数据库之间进行CRUD(CRUD是指在做计算处理时的增加、查询(重新得到数据)、更新和删除几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能)操作,优点是简单,快捷。但缺点是不够灵活,对稍复杂的业务无法满足需求,而且所有数据操作都写在页面中,不但影响传输速度,也不够安全。
于是一些操作可以用ADO.Net+DataSet/DataReader完成,可将这些数据访问的代码写在App_Code或后台代码中,当数据访问写在一个类里时,就可以用ObjectDataSource控件引用这些方法,并且这个控件接收各种类型的参数,符合OO的思路。同时也可以手写操作DataSet数据表,DataSet相当于存储在内存中的数据库,内部含有DataTable二维表,根据数据写 ......
[译]第一章 介绍 Web 门户以及 Dropthings.com
在这本书中,我将会给您展示怎样介绍一个 Ajax,Web 2.0 式的门户。这个门户使用 ASP.NET 3.5 , ASP.NET AJAX 和 .NET 3.5 , 也使用了 LINQ 和 SQL Server 2005.在创建应用程序中,你可以了解到:
必须要做的设计决定和 Web 2.0 用户界面中可用性的问题
架构的复杂性和丰富的 JavaScript,支持 widget 的站点的开发挑战
运行一个高容量的 web 应用程序的生产和维护的挑战
Ajax web 门户属于你可以在网上找到的最极端的客户端技术实现。它们不仅仅使用了大量的 JavaScript,CSS 和 HTML,它们也将 Ajax 和 服务器端的技术推向交互性,性能和可测两性的极限。当您阅读完本书,您将会有足够的技术知识来创建一个你自己的 web 2.0 产品。
我叫这个应用程序的示例 Dropthings,原因马上就会清楚,它是在像 Google 的 iGoogle 或者 PageFlakes 一样的 web 门户中去掉了一些功能之后的原型。你可以部署 Dropthings 在一个产品服务器上,作为你自己的个人站点,小组站点,或者甚至做为公司内部网络。包括可以拖拽的 widgets,完全的个性化支持,在多个页面上构建 widgets 的能力,集中的身份权限验证等等。
正如你通过这本书 ......
[译]第一章 介绍 Web 门户以及 Dropthings.com
在这本书中,我将会给您展示怎样介绍一个 Ajax,Web 2.0 式的门户。这个门户使用 ASP.NET 3.5 , ASP.NET AJAX 和 .NET 3.5 , 也使用了 LINQ 和 SQL Server 2005.在创建应用程序中,你可以了解到:
必须要做的设计决定和 Web 2.0 用户界面中可用性的问题
架构的复杂性和丰富的 JavaScript,支持 widget 的站点的开发挑战
运行一个高容量的 web 应用程序的生产和维护的挑战
Ajax web 门户属于你可以在网上找到的最极端的客户端技术实现。它们不仅仅使用了大量的 JavaScript,CSS 和 HTML,它们也将 Ajax 和 服务器端的技术推向交互性,性能和可测两性的极限。当您阅读完本书,您将会有足够的技术知识来创建一个你自己的 web 2.0 产品。
我叫这个应用程序的示例 Dropthings,原因马上就会清楚,它是在像 Google 的 iGoogle 或者 PageFlakes 一样的 web 门户中去掉了一些功能之后的原型。你可以部署 Dropthings 在一个产品服务器上,作为你自己的个人站点,小组站点,或者甚至做为公司内部网络。包括可以拖拽的 widgets,完全的个性化支持,在多个页面上构建 widgets 的能力,集中的身份权限验证等等。
正如你通过这本书 ......
在开发需要用户注册后才能使用提供的各项功能的应用程序时,在新用户提交注册信息后,较常见的做法是由程序生成随机密码,然后发送密码到用户注册时填写的电子信箱,用户再用收到的密码来激活其帐户。
实现ASP.NET生成随机密码功能是很容易的,下面的代码给出了完整的实现方法:
publicstaticstringMakePassword(stringpwdchars,intpwdlen)
{
stringtmpstr="";
intiRandNum;
Randomrnd=newRandom();
for(inti=0; i{
iRandNum=rnd.Next(pwdchars.Length);
tmpstr+=pwdchars[iRandNum];
}
returntmpstr;
} 对照源码,讲一下具体的思路:
方法 MakePassword 接受两个参数,pwdchars 参数指定生成的随机密码串可以使用哪些字符,pwdlen 指定生成的随机密码串的长度。有了这两个参数,通过调用 Random 类的 Next() 方法,先获得一个大于或等于 0 而小于 pwdchars 长度的整数,以该数作为索引值,从可用字符串中随机取字符,以指定的密码长度为循环次数,依次连接取得的字符,最后即得到所需的随机密码串了。
代码调用 MakePassword() 方法获取长度为 10 ,可用字符范围为大小写字母及数字的随机字符串。
string randomchars ="abcdefghijklmnopqrst ......