最近看到论坛有很多问设置权限的相关问题..而回帖的人则说设置everyone权限或是设置来宾帐户的读写权限....
个人觉得不需要怎么麻烦..建个模拟用户的类就可以了..代码如下:
Imports System
Imports System.Net
Imports System.Runtime.InteropServices
Imports System.Security.Principal
Imports System.Security.Permissions
'''
'''--------------------------------------------------
''' Copyright (C) 2008-2012 ***********有限公司
''' 文件名:*********.vb
''' 编写者:范亮
''' 功能: 用户模拟类
'''编写日期:2008年04月30日
'''--------------------------------------------------
'''
'''
Public Class ProjectDataCommon
#Region "构造函数"
Shared Sub New()
End Sub
#End Region
#Region "属性定义"
'''
''' Windows 用户
'''
Public Shared ApplicationIdentity As System.Security.Principal.WindowsIdentity
#End Region
End Class
#Region "用户模拟类"
'''
''' Summary description for NetworkSecurity.
'''
Public Class Personate
Public Const LOGON32_LOGON_INTERACTIVE As Integer = 2
Public Const LOGON32_PROVIDER_DEFAULT As Integer = 0
Private impersonationContext As WindowsImpersonationContext = Nothing
_
Public Shared Function LogonUserA(ByVal lpszUserName As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Integer, ByVal dwLogonProvider As Integer, ByRef phToken As IntPtr) As Integer
End Function
_
Public Shared Function DuplicateToken(ByVal hToken As IntPtr, ByVal impersonationLevel As Integer, ByRef hNewToken As IntPtr) As Integer
End Function
_
Public Shared Function RevertToSelf() As Boolean
End Function
_
Public Shared Function CloseHandle(ByVal handle As IntPtr) As Boolean
End Function
Public Function impersonateValidUser(ByVal userName As String, ByVal domain As String, ByVal password As String) As Boolean
Dim token As IntPtr = IntPtr.Zero
Dim tokenDuplicate As IntPtr = IntPtr.Zero
If RevertToSelf() Then
If LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, token) <> 0 Then
If DuplicateToken(token, 2, tokenDuplicate) <> 0 Then
ProjectDataCommon.ApplicationIdentity = New WindowsIdentity(tokenDuplicate)
Return True
End If
End If
End If
If token <> IntPtr.Zero Then
CloseHandle(token)
End If
If tokenDuplicate <> IntPtr.Zero Then
CloseHandle(tokenDuplicate)
End If
Return False
End Function
Public Sub undoImpersonation()
impersonationContext.Undo()
End Sub
End Class
#End Region
如有问题..请用QQ联系..或者留言