徹底解決Forms驗證角色 roles 問題

2021-04-18 02:42:23 字數 2834 閱讀 7093

這個問題是我在做專案的時候遇到的,因為以前都是用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....