1. MD5 加密
前提:引入命名空间 using System.Web.Security;
pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(pwd, "MD5"); 这句话就将 pwd 按MD5加密方式加密 了
在登陆页判断用户是否存在(或者是否是管理员)的方法应该放在 业务逻辑层 里 LoginManager.aspx
/// <summary>
/// 判断用户是否登录
/// </summary>
/// <param name="name">用户名</param>
/// <param name="pwd">密码</param>
/// <returns></returns>
public static bool Login(string name, string pwd)
{
bool flag = false;
if ("yinger" == name && "BE0D1B3A3AED7789407A83C3D68E962E" == pwd)
{
flag = true;
}
return flag;
}
2. 管理页的安全性
每次管理页面加载时,都要判断 session 中的对象是否是管理员
if (Session["admin"] != null && Session["admin"].ToString() == "yinger")
{
//已登录
if (!Page.IsPostBack)
{
repCategory.DataSource = new CategoryManager().SelectAll();
repCategory.DataBind();
}
}
else
{
//未登录
Response.Redirect("login.aspx");
}
3. 不刷新的页面提示
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请输入类别名称');</script>");
当前页面的 客户端脚本 ,显示一个信息 message
4. ValidationGroup 这是验证过程中很重要的一步
* ValidationGroup属性:
同时设置验证控件的ValidationGroup=”g1”与触发验证的控件的ValidationGroup=”g1”。例如当单击按钮时,只有验证控件的ValidationGroup属性值与该按钮的ValidationGroup属性值相同的验证控件会被触发。
*
例如:添加新闻类别
<div class="con">
请输入类别名称:<asp:TextBox ID="txtCaname" runat="server" Validati></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" Validati C runat="server" ErrorMessage="请输入类别名字!" Text="*"></asp:RequiredFieldValidator>
<asp:Button ID="btnAdd" Validati UseSubmitBehavior="false" runat="server" Text="添加类别"
/>
<asp:ValidationSummary ID="ValidationSummary1" Validati ShowMessageBox="true" ShowSummary="false" runat="server" />
</div>
5. JQuery : javascript 框架
jquery 就是 用 javascript 写出来的各种常用的方法,然后封装起来,叫做 jquery !
就好像 我们用 C# 写的各种类文件(包含各种方法),然后封装起来(.dll),被其他文件引用 !
可编辑的表格 javascript 编写,注意还要实现 异步实现 更新数据库
源码:
$(function () {
$(".caName").click(function () {
var objTd = $(this); //就是指caName这个单元格
var oldText = $.trim(objTd.text());
var input = $("<input type='text' value='" + oldText + "' />"); //注意 $(),将当前单元格变成文本框
$(this).html(input); //当前的文本框为以前的类别名称
//设置文本框的点击事件失效
input.click(function () {
return false;
});
//设置文本框的样式
input.css("border-width", 0);
input.height($(this).height()); //文本框的高度就是单元格的高度
input.width($(this).width()); //文本框的宽度就是单元格的宽度
input.css("text-align", "center");
input.css("font-size", "14px");
input.trigger("focus").trigger("select"); //全选 为了兼容Opera,必须先触发focus事件
//文本框失去焦点时重新变为文本
input.blur(function () {
var input_blur = $(this);
var newText = $.trim($(this).val()); //修改后的类别名称
//当新旧文本内容不相同时才进行数据的提交
if (oldText != newText) {
//获取当前单元格的新闻类别的ID
var caid = $.trim(objTd.prev().text());
//AJAX异步更新数据库 为了避免中文问题,可以对网址中的中文进行编码
var url = "../handler/ChangeCategoryName.ashx?caName=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime();
//提交 通过远程 HTTP GET 请求载入信息
$.get(url, function (data) {
if (data == "false") {
alert("类别修改失败!请检查是否已经存在了!");
input_blur.trigger("focus").trigger("select");
}
else {
objTd.html(newText);
}
});
}
else {
objTd.html(newText);
}
});
});
});
6. 类别管理页的键盘操作忽略!没有看过
7. DropDownList 使用
绑定新闻类别
DataTable dt = new CategoryManager().SelectAll();
ddlCategory.DataSource = dt;
ddlCategory.DataTextField = "name";
ddlCategory.DataValueField = "id";
ddlCategory.DataBind();
添加新闻时 要获取 类别的 id
protected void btnAdd_Click(object sender, EventArgs e)
{
string title = txtTitle.Text.Trim();
string content = ftbContent.Text;
string caid = ddlCategory.SelectedValue;
News n = new News(title, content, caid);
bool b = new NewsManager().Insert(n);
if (b)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('新闻添加成功!');</script>");
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('新闻添加失败,请联系管理员!');</script>");
}
8. 第三方工具的使用
FTB:FreeTextBox 控件,网页上功能强大的的编辑器,可以插入图片或者视频。。。
首先从网上将 FTB 下载下来,然后再 网站中 添加引用,引用 FTB文件夹中的 .dll文件,除此之外,还要在工具箱中 添加FTB选项 (选择“选项卡”添加)
在页面中调用
<FTB:FreeTextBox ID="ftbContent" runat="server" Language="zh-CN" ToolbarStyleConfiguration="OfficeXP" Width="540px" Height="300px">
</FTB:FreeTextBox>
每当页面中使用了 FTB,还会有一个 注册信息:
<%@ Register assembly="FreeTextBox" namespace="FreeTextBoxControls" tagprefix="FTB" %>
9. 出错页面:将任何出错时都跳转(自动导向)到 出错页面
web.config 文件
customErrors 应该 配置在 <system.web> 节点下面
<!--出现错误是跳转到出错页面-->
<customErrors mode="On" defaultRedirect="~/error.htm">
</customErrors>
10. 发布网站
在 IIS 中 默认网站上 新建虚拟目录
属性中 ASP.NET 一定要选择一个 .NET版本
【出现的问题:访问IIS元数据失败】如果先 安装 .NET,再安装 IIS,那么 IIS 中 没有 .NET 的注册信息,所以 最佳的方式是 先 IIS 后 .NET
如果顺序反了,就要在 .NET 中重新注册 IIS : 运行 aspnet_regiis.exe