// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
#nullable disable
using System.IO.Pipes;
using System.Runtime.Versioning;
namespace Microsoft.DotNet.Cli.Installer.Windows;
[SupportedOSPlatform("windows")]
internal abstract class InstallElevationContextBase : ElevationContextBase
{
/// <summary>
/// Gets whether this context is associated with the client or server instance of the
/// installer.
/// </summary>
public abstract bool IsClient
{
get;
}
/// <summary>
/// <see langword="true"/> if the the current user belongs to the administrators group.
/// </summary>
public override bool IsElevated => WindowsUtils.IsAdministrator();
/// <summary>
/// Command dispatcher to handle IPC between the elevated and non-elevated processes.
/// </summary>
public InstallMessageDispatcher Dispatcher
{
get;
private set;
}
protected void InitializeDispatcher(PipeStream pipeStream)
{
Dispatcher = new InstallMessageDispatcher(pipeStream);
}
}
|