以前開發項目時經常是自己開發一套用戶權限管理系統進行驗證
一
這種方式是最簡單的
aspnet_regsql命令在C:\WINDOWS\Microsoft
在Web
<connectionStrings>
<add name=
</connectionStrings>
<system
<authorization>
<deny users=
</authorization>
<authentication mode=
<forms loginUrl=
</authentication>
<membership defaultProvider=
<providers>
<clear />
<add connectionStringName=
enablePasswordRetrieval=
requiresUniqueEmail=
type=
</providers>
</membership>
</system
deny users=
至於authorization和authentication節的其他屬性可以參考MSDN
在Login
在Default
當我們訪問Default
二
采用第一種方式時會要求建立一個數據庫
這個事件就是用來進行驗證的
protected void Login
{
//判斷用戶名密碼是否正確
//
e
}
其實Login控件的核心主要也就是往Cookie裡面放入一些值
protected void Button
{
//判斷用戶名密碼是否正確
//
FormsAuthentication
if (Context
{
Response
}
else
{
Response
}
}采用以上兩種方式就不用建立默認的數據庫了
三
以上說的都是用戶級別的驗證
protected void Button
{
//判斷用戶名密碼是否正確
//
//得到用戶的角色
string userRoles =
FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(
string HashTicket = FormsAuthentication
//把角色信息保存到Cookie中去
HttpCookie UserCookie = new HttpCookie(FormsAuthentication
Response
if (Context
{
Response
}
else
{
Response
}
}把角色信息加密成特定的格式保存
如果要按照角色進行驗證的話
首先在nfig中加入配置
Code
<roleManager defaultProvider=
enabled=
cacheRolesInCookie=
cookieName=
cookieTimeout=
cookiePath=
cookieRequireSSL=
cookieSlidingExpiration=
cookieProtection=
<providers>
<clear />
<add name=
type=
writeExceptionsToEventLog=
</providers>
</roleManager>這個就是指定我們的角色提供類MyRoleProvider
這個類必須從System
public override string[] GetRolesForUser(string username)
{
FormsIdentity Id = HttpContext
if (Id != null)
{
return Id
}
return null;
}也就是從我們之前保存到Cookie中的值取得用戶角色(FormsAuthentication會自動把保存的cookie轉化成User內的值)
之後我們就可以在nfig中配置角色驗證規則了
<location path=
<system
<authorization>
<allow roles=
<deny users=
</authorization>
</system
</location>或者也可以在代碼中判斷
bool a = User
四
使用Forms的單點登錄主要是通過machineKey的配置
使用這種方式的單點登錄目前只能實現相同主機或相同子域站點之間的同步登錄
主要配置如下
<machineKey validationKey=
<authentication mode=
<forms loginUrl=
</authentication>要實現單點登錄的多個web站點的machineKey必須一樣
這樣配置好之後
注
其他
Forms驗證之後可以使用以下方法退出登錄
FormsAuthentication
另外這些登錄的後台Module是配置在C:\WINDOWS\Microsoft
<add name=
<add name=
<add name=
From:http://tw.wingwit.com/Article/program/net/201311/12087.html