📄 siteprincipal.cs
字号:
using System;
using System.Collections;
using System.Security;
using System.Security.Cryptography;
using System.Text;
using infoWeb.WebModules.Accounts;
namespace infoWeb.WebModules.Accounts.Business
{
/// <summary>
/// Summary description for SitePrincipal.
/// </summary>
public class SitePrincipal: infoWeb.WebModules.Business.BizObject, System.Security.Principal.IPrincipal
{
protected System.Security.Principal.IIdentity identity;
protected ArrayList permissionList;
protected ArrayList roleList;
// IPrincipal Interface Requirements:
// property Identity (IIDentity)
// property IsInRole (boolean)
public System.Security.Principal.IIdentity Identity
{
get
{
return identity;
}
set
{
identity = value;
}
}
public bool IsInRole(string role)
{
return roleList.Contains( role );
}
public bool HasPermission( int permissionID )
{
return permissionList.Contains( permissionID );
}
public ArrayList Roles
{
get
{
return roleList;
}
}
public ArrayList Permissions
{
get
{
return permissionList;
}
}
public SitePrincipal( int userID )
{
Configuration.ModuleSettings moduleSettings = Configuration.ModuleConfig.GetSettings();
Data.User dataUser = new Data.User( moduleSettings.ConnectionString );
identity = new SiteIdentity( userID );
permissionList = dataUser.GetEffectivePermissionList( userID );
roleList = dataUser.GetUserRoles( userID );
}
public SitePrincipal( string emailAddress )
{
Configuration.ModuleSettings moduleSettings = Configuration.ModuleConfig.GetSettings();
Data.User dataUser = new Data.User( moduleSettings.ConnectionString );
identity = new SiteIdentity( emailAddress );
permissionList = dataUser.GetEffectivePermissionList( ((Business.SiteIdentity)identity).UserID );
roleList = dataUser.GetUserRoles( ((Business.SiteIdentity)identity).UserID );
}
public static SitePrincipal ValidateLogin(string emailAddress, string password)
{
Configuration.ModuleSettings moduleSettings = Configuration.ModuleConfig.GetSettings();
int newID;
byte[] cryptPassword = EncryptPassword( password );
Data.User dataUser = new Data.User( moduleSettings.ConnectionString );
if ( (newID = dataUser.ValidateLogin(emailAddress, cryptPassword)) > -1 )
return new SitePrincipal( newID );
else
return null;
}
public static byte[] EncryptPassword(string password)
{
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] hashBytes = encoding.GetBytes( password );
// compute SHA-1 hash.
SHA1 sha1 = new SHA1CryptoServiceProvider();
byte[] cryptPassword = sha1.ComputeHash ( hashBytes );
return cryptPassword;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -