📄 myprincipal.vb
字号:
Imports System.Security.Principal
Namespace Data
Public Interface IJmsPrincipal
Inherits IPrincipal
Overloads ReadOnly Property ID() As Int32
Overloads ReadOnly Property Name() As String
Overloads ReadOnly Property Login() As String
Overloads ReadOnly Property Role() As String
Overloads ReadOnly Property Shop() As String
Overloads ReadOnly Property Shopid() As Int32
Function IsOperator() As Boolean
Function IsManager() As Boolean
Function IsCopOperator() As Boolean
Function IsCopManager() As Boolean
Function IsShopOperator() As Boolean
Function IsShopManager() As Boolean
Function IsLogon() As Boolean
Function IsAdmin() As Boolean
End Interface
Public Class JmsPrincipal
Implements IJmsPrincipal
Private _identity As IIdentity
Private _roles As String()
Public Sub New(ByVal identity As IIdentity, ByVal roles As String())
_identity = identity
_roles = Array.CreateInstance(GetType(String), roles.Length)
roles.CopyTo(_roles, 0)
End Sub
Public Overridable Overloads Function IsInRole(ByVal role As String) As Boolean Implements IJmsPrincipal.IsInRole
Return _roles(2).Equals(role)
End Function
Public Function Islogon() As Boolean Implements IJmsPrincipal.IsLogon
Return (ismanager() Or IsOperator() Or isad())
End Function
Public Function IsOperator() As Boolean Implements IJmsPrincipal.IsOperator
Return InStr(_roles(2), "操作员") > 0
End Function
Public Function ismanager() As Boolean Implements IJmsPrincipal.IsManager
Return InStr(_roles(2), "经理") > 0
End Function
Public Function iscm() As Boolean Implements IJmsPrincipal.IsCopManager
Return _roles(2) = "总部经理"
End Function
Public Function isco() As Boolean Implements IJmsPrincipal.IsCopOperator
Return _roles(2) = "总部操作员"
End Function
Public Function issm() As Boolean Implements IJmsPrincipal.IsShopManager
Return _roles(2) = "店铺经理"
End Function
Public Function isso() As Boolean Implements IJmsPrincipal.IsShopOperator
Return _roles(2) = "店铺操作员"
End Function
Public Function isad() As Boolean Implements IJmsPrincipal.IsAdmin
Return _roles(2) = "系统管理员"
End Function
Overridable Overloads ReadOnly Property Identity() As IIdentity Implements IJmsPrincipal.Identity
Get
Return _identity
End Get
End Property
Public Shared Function MakeString(ByVal OP As LogonOperator) As String
Dim ms As String() = Array.CreateInstance(GetType(String), 6)
ms(0) = CType(OP.ID, String)
ms(1) = OP.Name
ms(2) = OP.Role
ms(3) = OP.Shop
ms(4) = CType(OP.ShopID, String)
ms(5) = OP.Login
Dim s As String = Join(ms, "|")
Return s
End Function
Public ReadOnly Property ID() As Int32 Implements IJmsPrincipal.ID
Get
Return CType(_roles(0), Int32)
End Get
End Property
Public ReadOnly Property Name() As String Implements IJmsPrincipal.Name
Get
Return CType(_roles(1), String)
End Get
End Property
Public ReadOnly Property Login() As String Implements IJmsPrincipal.Login
Get
Return CType(_roles(5), String)
End Get
End Property
Public ReadOnly Property Role() As String Implements IJmsPrincipal.Role
Get
Return CType(_roles(2), String)
End Get
End Property
Public ReadOnly Property Shop() As String Implements IJmsPrincipal.Shop
Get
Return CType(_roles(3), String)
End Get
End Property
Public ReadOnly Property Shopid() As Int32 Implements IJmsPrincipal.Shopid
Get
Return CType(_roles(4), Int32)
End Get
End Property
End Class
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -