从今天开始,要做WEB了,当然,有必要开始学习PetShop了
一、安装
安装过程中需要输入的SQLSERVER的验证方式,这两种就不介绍了。进入后,打VS,并打开PetShop的工程项目,一运行提示如下错误:
?/MSPetShop?????????????
?? 'NT AUTHORITY\NETWORK SERICE' ?????
解决方法
第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中
我的电脑-->右键-->管理-->本地用户和组
选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。
第二步 在企业管理器中加入NETWORK SERVICE用户
打开Sql Server企业管理器-->选择数据库实例-->打开“安全性”节点-->选择“登录”-->在右边的列表中单击右键-- >选择“新建登录”-->在“常规”选项卡中单击“名称”旁边的按钮“...”-->选择“Administrators”组-- >单击下面的“成员”按钮-->选择“Network Service”-->单击“添加”按钮-->单击“确定”,返回“新建登录”对话框-->保证身份验证类型为“windows验证” 和“允许访问”-->单击“确定”-->关闭“企业管理器”
忘了重要一点,要加上mspetshop这两个DB的访问权
第三步
重新运行asp.net程序,数据库连接字符串选择windows验证即可。
解决了吗?还不行?还是老实的再看看书<<.Net 程序设计技术内幕>>
嗯还是找找WEB的安全性话题吧
Asp.Net在请求者在发出请求后就去验证请求者的合法性,以判断是否此请求合法
验证有三种
1. Windows验证: asp.net 向IIS寻求帮助。IIS对调用者的身份验证后,把调用者的身份告诉Asp.net。当然这种验证的结果会传给以后的每个请求,这种验证场合多为公司内部,Windows验证的根本目标就是将传入请求映射到WEB服务器的用户帐户上,允许使用OS内置的安全机制,来保护文件和其他资源文件不被未授予权的用户非法访问
2. Passport验证:依赖MS的 Passport来验证用户身份,最好的例子就是MSN的,更多的情况大家还是去下载Passport SDK,MS网站上有
3. 窗体验证: 这种是依靠WEB页中的登录窗体来验证用户的。比如我们一般网站的登录窗体
疑问?那怎么让Asp.Net知道我是要哪种类型的验证呢,哦,在Web.Config文件里,
找到<authentication mode=”Forms” />
其他的mode值有None,Windows,Passport
好了,问题解决了,这些题外话暂时不说了,要不然又是一大章
打开default.aspx,发现一些没有见过的语句
<%@ Page Language="c#" AutoEventWireup="false" enableSessionState="ReadOnly"%>
<%@ Register TagPrefix="PetsControl" TagName="Banner" Src="Controls/Banner.ascx" %>
<%@ Register TagPrefix="PetsControl" TagName="NavBarNoMenu" Src="Controls/NavBarNoMenu.ascx" %>
好了,解释一下
Page 指令的 AutoEventWireup 属性被设置为 true(或者如果缺少此属性,因为它默认为 true),该页框架将自动调用页事件,即 Page_Init 和 Page_Load 方法。在这种情况下,不需要任何显式的 Handles 子句或委托。
很显然,这首页里,只是一个纯静态页界,不需要加载页面事件,故可为false,
MSDN的解释是如下
enableSessionState
指定是否启用会话状态。
true
指示会话状态已启用。
false
指示会话状态未启用。
ReadOnly
指定应用程序可以读取但不能修改会话状态变量。
第三行<%@ Register TagPrefix="PetsControl" TagName="NavBarNoMenu" Src="Controls/NavBarNoMenu.ascx" %>
tagprefix
与命名空间关联的别名。
tagname
与类关联的别名。
Namespace
与 tagprefix 关联的命名空间。
Src
与 tagprefix:tagname 对关联的声明性用户控件文件的位置(相对的或绝对的)。
Assembly
与 tagprefix 关联的命名空间所驻留的程序集。
注意 程序集名称不包括文件扩展名。
今天先了解一个一些概念的东东,明天继续