建議:1、首先,做一個權限計劃表
公司主營業(yè)務:網站設計、做網站、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現互聯(lián)網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出東海免費做網站回饋大家。
2、根據權限計劃表,確定權限級別及所對應的權限
3、設計一個權限類型,程序中指定變量存儲級別和權限
4、設計登錄界面,并寫相應代碼檢查權限,同時保存登錄人權限內容
5、需要控制的部分,檢查權限,從而達到權限設計的目的
我的一點建議,自己斟酌吧。
不能。 權限問題就是這么嚴格執(zhí)行的。如果你沒有權限就讓你去訪問那么必然就成了微軟的漏洞了哦。
基礎類庫:
Imports Microsoft.VisualBasic
'執(zhí)行Access語句的封裝類。
Public Class AccessExecClass
Private conn As Data.OleDb.OleDbConnection
Private cmd As Data.OleDb.OleDbCommand
'創(chuàng)建類對象,并連接到數據庫。
Sub New()
If openAccess Then
Else
msgbox("open Access Fail.")
End If
End Sub
'創(chuàng)建類對象,并連接到數據庫。 '輸入帶目錄名稱的數據庫文件名稱:dbFileName,例如:“\DB數據庫\企業(yè)數據庫.aspx”
Sub New(ByVal dbFileName As String)
If OpenAccess(dbFileName) Then
Else
MsgBox("open Access Fail.")
End If
End Sub
Function OpenAccess() As Boolean
OpenAccess = False
'檢驗用戶的帳號密碼是否正確
Dim provider As String '= ConfigurationManager.ConnectionStrings("ConnectionString").ProviderName
provider = "Provider=Microsoft.Jet.OLEDB.4.0"
Dim database As String
database = "Data Source=" System.Web.HttpContext.Current.Server.MapPath("\數據庫.aspx") ";Persist Security Info=true"
conn = New Data.OleDb.OleDbConnection(provider ";" database)
conn.Open()
OpenAccess = True
End Function
Function OpenAccess(ByVal dbFileName As String) As Boolean
OpenAccess = False
'檢驗用戶的帳號密碼是否正確
Dim provider As String '= ConfigurationManager.ConnectionStrings("ConnectionString").ProviderName
provider = "Provider=Microsoft.Jet.OLEDB.4.0"
Dim database As String
database = "Data Source=" System.Web.HttpContext.Current.Server.MapPath(dbFileName) ";Persist Security Info=true"
conn = New Data.OleDb.OleDbConnection(provider ";" database)
conn.Open()
OpenAccess = True
End Function
'關閉數據庫。
Sub CloseAccess()
cmd = Nothing
conn.Close()
End Sub
'執(zhí)行一條Access語句,執(zhí)行成功就返回True。
Function ExecAccessString(ByVal AccessStr As String) As Boolean
cmd = New Data.OleDb.OleDbCommand(AccessStr, conn)
cmd.ExecuteNonQuery()
'Dim aa As Data.OleDb.OleDbDataReader = cmd.ExecuteReader
ExecAccessString = True
End Function
'返回讀取到的數據,注意是用地址傳遞方式返回
Sub ExecAccessString(ByVal AccessStr As String, ByRef AccessReader As Data.OleDb.OleDbDataReader)
cmd = New Data.OleDb.OleDbCommand(AccessStr, conn)
cmd.ExecuteNonQuery()
AccessReader = cmd.ExecuteReader
End Sub
End Class
登陸代碼:
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
Dim wl As New WebLog '用戶登錄記錄開始,僅對購買了Log 功能的用戶,才開放此功能,否則不會實際記錄Log
Dim sql As String
Dim aDB As New AccessExecClass
Dim mypw As String
Label1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
'沒有輸入時,不能進行登陸
If TextBox1.Text = "" Then
Label1.Visible = True
Return
End If
If TextBox2.Text = "" Then
Label2.Visible = True
Return
End If
If TextBox3.Text = "" Then
Label3.Visible = True
Return
End If
If TextBox3.Text = TextBox4.Text Then
Else
Label3.Visible = True
Return
End If
Dim iRnd As Integer = Rnd(10) * 100
TextBox3.Text = ""
TextBox4.Text = iRnd.ToString
'Dim iRnd As Integer = Rnd(10) * 100
'注意:此處需要加入防止注入分析,包含'的肯定是特別語句,講拒絕.
If TextBox1.Text.IndexOf("'") 0 Or TextBox2.Text.IndexOf("'") 0 Then
TextBox1.Text = "不能輸入非法字符,將強制清空"
TextBox2.Text = ""
Else
Dim pw As New MD5EnCode(13, 19) ' '2次加密
sql = "select 權限組號,ID , 密碼 from 編輯人數據 where 編輯姓名='" + TextBox1.Text + "'"
Dim aa As Data.OleDb.OleDbDataReader '= cmd.ExecuteReader
aDB.ExecAccessString(sql, aa)
If aa.Read() Then
'密碼正確()
'sql = aa(2)'需要特別注意:只能單向解密,不能直接轉換
mypw = pw.simDeCode(pw.simDeCode(aa(2)))
If TextBox2.Text = mypw Then
Session("LOGIN_Name") = TextBox1.Text '設置登錄后的用戶名稱
Session("Login_Group") = aa(0) 'cmd.ExecuteScalar '設置登錄后的權限級別
Session("Login_ID") = aa(1) 'cmd.ToString
'cmd = Nothing
'conn.Close()
Call wl.NewLog("登錄", "管理員成功登錄")
Response.Redirect("../WebManages/Default.ASPX")
Else
'密碼錯誤()
sql = sql.Replace("'", "【單引號】")
sql = sql.Replace(",", "【逗號】")
Call wl.NewLog("登錄", "管理員失敗的登錄", TextBox1.Text, sql.Replace("""", "【雙引號】"), "")
Label4.Visible = True
End If
Else
'密碼錯誤()
sql = sql.Replace("'", "【單引號】")
sql = sql.Replace(",", "【逗號】")
Call wl.NewLog("登錄", "管理員失敗的登錄", TextBox1.Text, sql.Replace("""", "【雙引號】"), "")
Label4.Visible = True
End If
End If
End Sub
VB點虐 (VS2008)里面比C#還好弄,不需要自己加manifest,直接在項目屬性的“應用程序”里面點擊“查看UAC設置”,在新打開的app.manifest里面把 requestedExecutionLevel level="asInvoker" uiAccess="false" / 替換成 requestedExecutionLevel level="requireAdministrator" uiAccess="false" / 再編譯就行了。