10 public struct Win32ServiceCredentials(string userName, string password)
11 : IEquatable<Win32ServiceCredentials>
16 public string UserName {
get; } = userName;
21 public string Password {
get; } = password;
26 public static readonly Win32ServiceCredentials LocalSystem =
new(
@".\LocalSystem", password:
null);
31 public static readonly Win32ServiceCredentials LocalService =
new(
@"NT AUTHORITY\LocalService", password:
null);
36 public static readonly Win32ServiceCredentials NetworkService =
new(
@"NT AUTHORITY\NetworkService", password:
null);
43 public bool Equals(Win32ServiceCredentials Other)
45 return string.Equals(this.UserName, Other.UserName) &&
46 string.Equals(this.Password, Other.Password);
50 public override bool Equals(
object obj)
56 return obj is Win32ServiceCredentials Win32ServiceCredentials &&
57 this.Equals(Win32ServiceCredentials);
62 public override int GetHashCode()
66 return ((this.UserName?.GetHashCode() ?? 0) * 397) ^
67 (this.Password?.GetHashCode() ?? 0);
77 public static bool operator ==(Win32ServiceCredentials left, Win32ServiceCredentials right)
79 return left.Equals(right);
88 public static bool operator !=(Win32ServiceCredentials left, Win32ServiceCredentials right)
90 return !left.Equals(right);