這個問題是我在做專案的時候遇到的,因為以前都是用seesion來處理類似的問題,但是有朋友說用forms可以減少很多**,由於技術有限,研究了很久,工夫不負有心人,在csdn多位大大的幫助下,特別是[only_endure
]大人的細心+耐心的回答才得以有今天的文章,真是感動啊~
閒話就說到此為止,我們知道windows自帶的有四種認證方式,是不是四種呢?去baidu下,我們今天只講關於form的驗證問題;
web.config配置檔案先這樣寫
見文章最後 完成配置
首點我們第一步要做的就是 建立乙個login.aspx頁面,用來作為此次程式的登陸頁,這不是廢話嗎,沒登陸頁我驗證什麼,頁面上拉上兩textbox,乙個用於 使用者名稱 乙個用於 密碼,再拖乙個 dropdownlist 在collection裡直接建立兩使用者組,個人使用者|企業使用者 我們重要圍繞講的是當使用者選擇 的是企業使用者的時候, 還需要對使用者名稱進行角色的區別~也是我這些天來辛苦的原因。 最後在拖乙個 button;我是把整個登陸放在乙個使用者控制項裡完成的
礙於篇幅,前台**略……:)
c#**:
using system;
using system.data;
using system.configuration;
using system.collections;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
public partial class logincontrol : system.web.ui.usercontrol
//else
//public static sqlconnection createconn()
public static string login_role()
public static string userrole(string username, string roles)
public static bool isrole(string role)
public static string md5_method(string userpass)
public static void logout()
cookie.expires = datetime.now.addyears(-10);
}public static void checkcompany(string username)
else
else}}
}
membership類**
using system;
using system.data;
using system.configuration;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.security;
using system.security.principal;
///
/// membership 的摘要說明
// 建立票證後,為 userdata 屬性指定乙個
// 以管道符分隔的角色名字串。
string roles = authticket.userdata.split(new char );
// 建立乙個標識物件
formsidentity id = new formsidentity(authticket);
// 該主體將通過整個請求。
genericprincipal principal = new genericprincipal(id, roles);
// 將新的主體物件附加到當前的 httpcontext 物件
}}
web.config配置檔案
在這個過程中我所遇到的問題就是當cookie儲存進客戶端的時候,卻不知道讓他一直存在我們的程式內,用
乙個asp.net 的內建方法 httpcontext.current.user.isinrole(string role); 來判斷當前使用者
名是屬於哪個分組,後來才知道是不能直接用formsauthenticationticket這個類儲存的cookie和
user.isinrole()做對映,需要在中間放乙個中間類,來建議對映,這個類就是上面的 membership 相關的
方法請查閱msdn就可以知道原理了~ 希望能和大家繼續討論~ 謝謝
徹底解決 OBJC CLASS
最近在使用靜態庫時,總是出現這個問題。下面總結一下我得解決方法 1.m檔案沒有匯入 在build phases裡的compile sources 中新增報錯的檔案 2.framework檔案沒有匯入 靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案 同樣是在build phases裡的...
徹底解決INSTALL FAILED UPDATE
按ctrl c退出系統,利用adb pull data system packages.xml命令將packages.xml放到你pc機本地,然後找到你需要的包名,刪除到的一段資料。例如 儲存packages.xml,然後adb push packages.xml data system將packa...
徹底解決 OBJC CLASS
1.m檔案沒有匯入 在build phases裡的compile sources 中新增報錯的檔案 2.framework檔案沒有匯入 靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案 同樣是在build phases裡的link binary with libraries中新增 3....