C# Class Subtext.Framework.Security.SecurityHelper

Handles blog logins/passwords/tickets
ファイルを表示 Open project: ayende/Subtext Class Usage Examples

Public Methods

Method Description
Authenticate ( string claimedIdentifier, bool persist ) : bool

Check to see if the supplied OpenID claim is valid for the current blog. If so, Set the user's FormsAuthentication Ticket This method will handle passwords for both hashed and non-hashed configurations We're comparing URI objects rather than using simple string compare because functionally equivalent URI's may not pass string comparaisons, e.g. such as http://example.myopenid.com/ and http://example.myopenid.com (trailing /)

Authenticate ( string username, string password, bool persist ) : bool

Check to see if the supplied credentials are valid for the current blog. If so, Set the user's FormsAuthentication Ticket This method will handle passwords for both hashed and non-hashed configurations

AuthenticateHostAdmin ( string username, string password, bool persist ) : bool

Authenticates the host admin.

CombinePasswordAndSalt ( string password, string salt ) : string

Returns a string with a password and salt combined.

CreateRandomSalt ( ) : string

Creates a random salt value.

DecryptString ( string encryptedBase64EncodedString, Encoding encoding, byte key, byte initializationVendor ) : string

Decrypts the string.

EncryptString ( string clearText, Encoding encoding, byte key, byte initializationVendor ) : string

Generates the symmetric key.

GenerateInitializationVector ( ) : byte[]

Generates the symmetric key.

GenerateSymmetricKey ( ) : byte[]

Generates the symmetric key.

GetExpiredCookie ( ) : System.Web.HttpCookie

Used to remove a cookie from the client.

GetFullCookieName ( ) : string

Identifies cookies by unique BlogHost names (rather than a single name for all cookies in multiblog setups as the old code did).

HashPassword ( string password ) : string

Get MD5 hashed/encrypted representation of the password and returns a Base64 encoded string of the hash. This is a one-way hash.

Passwords are case sensitive now. Before they weren't.

HashPassword ( string password, string salt ) : string

Get MD5 hashed/encrypted representation of the password and a salt value combined in the proper manner. Returns a Base64 encoded string of the hash. This is a one-way hash.

Passwords are case sensitive now. Before they weren't.

IsInRole ( string role ) : bool

Returns true if the user is in the specified role. It's a wrapper to calling the IsInRole method of IPrincipal.

IsValidPassword ( string password ) : bool

Check to see if the supplied password matches the password for the current blog. This method will check the BlogConfigurationSettings to see if the password should be Encrypted/Hashed

IsValidUser ( string username, string password ) : bool

Validates if the supplied credentials match the current blog

LogOut ( ) : void

Logs the user off the system.

RandomPassword ( ) : string

Generates a "Random Enough" password. :)

ResetHostAdminPassword ( ) : string
ResetPassword ( ) : string

When we Encrypt/Hash the password, we can not un-Encrypt/Hash the password. If user's need to retrieve this value, all we can do is reset the passowrd to a new value and send it.

SelectAuthenticationCookie ( ) : System.Web.HttpCookie

Obtains the correct cookie for the current blog

SetAuthenticationTicket ( string username, bool persist ) : void
SetAuthenticationTicket ( string username, bool persist, bool forceHostAdmin ) : void

Used by methods in this class plus Install.Step02_ConfigureHost

UpdateHostAdminPassword ( string password ) : void
UpdatePassword ( string password ) : void

Updates the current users password to the supplied value. Handles hashing (or not hashing of the password)

Private Methods

Method Description
GetFullCookieName ( bool forceHostAdmin ) : string

Method Details

Authenticate() public static method

Check to see if the supplied OpenID claim is valid for the current blog. If so, Set the user's FormsAuthentication Ticket This method will handle passwords for both hashed and non-hashed configurations We're comparing URI objects rather than using simple string compare because functionally equivalent URI's may not pass string comparaisons, e.g. such as http://example.myopenid.com/ and http://example.myopenid.com (trailing /)
public static Authenticate ( string claimedIdentifier, bool persist ) : bool
claimedIdentifier string
persist bool If valid, should we persist the login
return bool

Authenticate() public static method

Check to see if the supplied credentials are valid for the current blog. If so, Set the user's FormsAuthentication Ticket This method will handle passwords for both hashed and non-hashed configurations
public static Authenticate ( string username, string password, bool persist ) : bool
username string Supplied UserName
password string Supplied Password
persist bool If valid, should we persist the login
return bool

AuthenticateHostAdmin() public static method

Authenticates the host admin.
public static AuthenticateHostAdmin ( string username, string password, bool persist ) : bool
username string The username.
password string The password.
persist bool if set to true [persist].
return bool

CombinePasswordAndSalt() public static method

Returns a string with a password and salt combined.
public static CombinePasswordAndSalt ( string password, string salt ) : string
password string Password.
salt string Salt.
return string

CreateRandomSalt() public static method

Creates a random salt value.
public static CreateRandomSalt ( ) : string
return string

DecryptString() public static method

Decrypts the string.
public static DecryptString ( string encryptedBase64EncodedString, Encoding encoding, byte key, byte initializationVendor ) : string
encryptedBase64EncodedString string The encrypted base64 encoded string.
encoding System.Text.Encoding The encoding.
key byte The key.
initializationVendor byte The initialization vendor.
return string

EncryptString() public static method

Generates the symmetric key.
public static EncryptString ( string clearText, Encoding encoding, byte key, byte initializationVendor ) : string
clearText string The clear text.
encoding System.Text.Encoding The encoding.
key byte The key.
initializationVendor byte The initialization vendor.
return string

GenerateInitializationVector() public static method

Generates the symmetric key.
public static GenerateInitializationVector ( ) : byte[]
return byte[]

GenerateSymmetricKey() public static method

Generates the symmetric key.
public static GenerateSymmetricKey ( ) : byte[]
return byte[]

GetExpiredCookie() public static method

Used to remove a cookie from the client.
public static GetExpiredCookie ( ) : System.Web.HttpCookie
return System.Web.HttpCookie

GetFullCookieName() public static method

Identifies cookies by unique BlogHost names (rather than a single name for all cookies in multiblog setups as the old code did).
public static GetFullCookieName ( ) : string
return string

HashPassword() public static method

Get MD5 hashed/encrypted representation of the password and returns a Base64 encoded string of the hash. This is a one-way hash.
Passwords are case sensitive now. Before they weren't.
public static HashPassword ( string password ) : string
password string Supplied Password
return string

HashPassword() public static method

Get MD5 hashed/encrypted representation of the password and a salt value combined in the proper manner. Returns a Base64 encoded string of the hash. This is a one-way hash.
Passwords are case sensitive now. Before they weren't.
public static HashPassword ( string password, string salt ) : string
password string Supplied Password
salt string
return string

IsInRole() public static method

Returns true if the user is in the specified role. It's a wrapper to calling the IsInRole method of IPrincipal.
public static IsInRole ( string role ) : bool
role string Role.
return bool

IsValidPassword() public static method

Check to see if the supplied password matches the password for the current blog. This method will check the BlogConfigurationSettings to see if the password should be Encrypted/Hashed
public static IsValidPassword ( string password ) : bool
password string Supplied Password
return bool

IsValidUser() public static method

Validates if the supplied credentials match the current blog
public static IsValidUser ( string username, string password ) : bool
username string Supplied Username
password string Supplied Password
return bool

LogOut() public static method

Logs the user off the system.
public static LogOut ( ) : void
return void

RandomPassword() public static method

Generates a "Random Enough" password. :)
public static RandomPassword ( ) : string
return string

ResetHostAdminPassword() public static method

public static ResetHostAdminPassword ( ) : string
return string

ResetPassword() public static method

When we Encrypt/Hash the password, we can not un-Encrypt/Hash the password. If user's need to retrieve this value, all we can do is reset the passowrd to a new value and send it.
public static ResetPassword ( ) : string
return string

SelectAuthenticationCookie() public static method

Obtains the correct cookie for the current blog
public static SelectAuthenticationCookie ( ) : System.Web.HttpCookie
return System.Web.HttpCookie

SetAuthenticationTicket() public static method

public static SetAuthenticationTicket ( string username, bool persist ) : void
username string
persist bool
return void

SetAuthenticationTicket() public static method

Used by methods in this class plus Install.Step02_ConfigureHost
public static SetAuthenticationTicket ( string username, bool persist, bool forceHostAdmin ) : void
username string Username for the ticket
persist bool Should this ticket be persisted
forceHostAdmin bool
return void

UpdateHostAdminPassword() public static method

public static UpdateHostAdminPassword ( string password ) : void
password string
return void

UpdatePassword() public static method

Updates the current users password to the supplied value. Handles hashing (or not hashing of the password)
public static UpdatePassword ( string password ) : void
password string Supplied Password
return void