用WSDL命令可以注冊web service
在APS
NET中創建WEB服務
以
ASMX擴展名保存文件
<%@ WebService Language=
c#
class=
TestWS
%>
using System
Web
Services;
class TestWS
{
[WebMethod]
public string SayHello(string name)
{
return
Hello
+name;
}
}
POST 調用Web service
//以下為l文件內容
<form name=
f
method=
post
action=
>
<input type=
test
name=
name
><input type=
submit
>
</form>
Get 調用Web service
在url中傳參
如:
將APSX頁面修改為用戶控件
去除<html> <body> <form>元素
將Web窗體頁中ASP
NET指令類型從@Page更改為@Control
更改指令的CodeBehind屬性引用以反映
aspx擴展名將更改為
ascx
將基類從System
Web
UI
Page更改為System
Web
UI
UserControl
在用戶控件中
控件的值可以定義屬性
有一個用戶控件
如果無法訪問的話
可以用FindControl方法
變量=((testControl)this
FindControl(
tc
))
txtUsername;
//Response
Write(((testControl)this
FindControl(
tc
))
txtUsername);
(testControl)是強制類型轉換
括號內是類型
FindControl(
tc
) tc是控件的name
txtUsername是控件的屬性
用戶控件的使用(在APSX頁面中注冊)
<%@ Register TagPrefix=
uc
TagName=
menu
Src=
menu
ascx
%>
TagPrefix 確定用戶控件的唯一命名空間
它將是標記中控件名稱的前綴
TagName 為用戶控件的名稱
Src 用戶控件的虛擬路徑
例如
UserControl
ascx
WEB自定義控件
nfig
<!
說明:
所有的配置都必須被放在<configuration>和</configuration>標記之中
<appSettings>和</appSettings>之間是自定義配置
通常用來自己設置一些常量
Add添加常量
Key是常量的名稱
value是常量的值
<appSettings>
<add key=
con
value=
server=
;database=northwind;uid=sa;pwd=;
></add>
</appSettings>
在程序中可以用System
Configuration
ConfigurationSettings
AppSettings[
con
]取值
SqlConnection con=new SqlConnection(System
Configuration
ConfigurationSettings
AppSettings[
con
]);
con
Open();
SqlCommand cmd=new SqlCommand(
select * from employees
con);
this
DataGrid
DataSource=cmd
ExecuteReader();
this
DataGrid
DataBind();
<system
web>和</system
web>之間的標記是關於整個應用程序的設置
如 <pages buffer=
true
/> 使用頁緩沖
<location>和</location>是一個區域標記
Path=
aaa
表示下面的設置只對該文件有效
>
customErrors設置(在<system
web>和</system
web>之間)
語法
<customErrors
defaultRedirect=
url
mode=
On|Off|RemoteOnly
>
<error statusCode=
statuscode
redirect=
url
/>
</customErrors>
身份驗證和授權 身份驗證類型: WINDOWS 描述: WINDOWS 身份難作為默認的身份驗證模式
用於任何形式的IIS身份驗證
身份驗證類型: FORMS 描述: 基於APS
NET窗體的身份驗證作為默認的身份驗證模式
身份驗證類型: PASSPORT 描述:Microsoft Passport身份驗證作為默認的身份驗證模式
身份驗證類型: NONE 描述: 沒有身份驗證
用於匿名用戶和可以提供其自己的身份驗證的應用程序
<configuration>
<system
web>
<authentication mode=
Windows|Forms|Passport|None
>?
<forms name=
name
loginUrl=
url
protection=
All|NOne|Encryption
timeout=
xx
path=
/
>?
<credentials passwordFormat=
Clear|SHA
|MD
> /*Clear為明文密碼*/
<user name=
用戶名
password=
密碼
/>
</credentials>
</forms>?
<passport redirectUrl=
internal
/>?
</authentication>
</system
web>
</configuration>
//基於forms先把IIS中該應用的匿名訪問去掉
<forms>標記的屬性
屬性 選項 描述
name None 登錄身份驗證的Cookie名稱
loginUrl None 登錄頁URL
如果沒有身份驗證Cookie
客戶端將被重定向到此URL
protection ALL 應用程序同時使用數據驗證和加密來保護Cookie
None 加密和驗證都禁用
timeout 一段時間(按分鐘計)
這段時間之後身份驗證Cookie將到期
默認值為
path 由應用程序發布的Cookie的路徑
默認值是反斜槓(/)
<authentication mode=
Forms
>
<forms name=
YourCookieName
loginUrl=
login
aspx
protection=
ALL
></forms>
</authentication>
//授權
<authorization>
<allow users=
?
/> //<allow users=
*
/><!
允許所有用戶
>
<!
<allow users=
[逗號分隔的用戶列表]
roles=
[逗號分隔的角色列表]
/>
<deny users=
[逗號分隔的用戶列表]
roles=
[逗號分隔的角色列表]
/>
>
</authorization>
//login
aspx
登錄代碼
//連接數據庫進行驗證
if(true)//用戶名是否合法
{
// System
Web
Security
FormsAuthentication
SetAuthCookie(this
TextBox
Text
false);//指定的用戶名寫入到Cookie中(false臨時Cookie
true永久Cookie)
// Response
Redirect(
);
System
Web
Security
FormsAuthentication
RedirectFromLoginPage(this
TextBox
Text
false);//轉到用戶原訪問的頁
//如果為true
可用System
Web
Security
FormsAuthentication
SignOut();刪除
以後又要求登錄
}
else
{
Response
Write(
用戶不合法
);
}
//如果用戶少的話
可以不用數據庫
直接允許/拒絕用戶
<authentication mode=
Forms
<forms name=
authCre
loginUrl=
login
aspx
protection=
ALL
>
<credentials passwordFormat=
Clear
>
<user name=
aaa
password=
aaa
/>
<user name=
bbb
password=
bbb
/>
</credentials>
</forms>
</authentication>
登錄代碼
private void Button
_Click(object sender
System
EventArgs e)
{
if(System
Web
Security
FormsAuthentication
Authenticate(this
TextBox
Text
This
TextBox
Text)
{
// System
Web
Security
FormsAuthentication
SetAuthCookie(this
TextBox
Text
true);//此方法需重定向
// Response
Redirect(
WebForm
aspx
);
System
Web
Security
FormsAuthentication
RedirectFromLoginPage(this
TextBox
Text
false);//此方法不需要重定向
直接轉到原訪問頁
}
else
{
Response
Write(
用戶不合法
);
}
}
//授權時
通配符*表示任何人
?表示匿名
From:http://tw.wingwit.com/Article/program/net/201311/13015.html