119 lines
4.9 KiB
Plaintext
119 lines
4.9 KiB
Plaintext
@namespace Oqtane.Installer.Controls
|
|
@implements Oqtane.Interfaces.IDatabaseConfigControl
|
|
@inject IStringLocalizer<SqlServerConfig> Localizer
|
|
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
|
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="server" HelpText="Enter the database server name. This might include a port number as well if you are using a cloud service (ie. servername.database.windows.net,1433) " ResourceKey="Server">Server:</Label>
|
|
<div class="col-sm-9">
|
|
<input id="server" type="text" class="form-control" @bind="@_server" />
|
|
</div>
|
|
</div>
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="database" HelpText="Enter the name of the database" ResourceKey="Database">Database:</Label>
|
|
<div class="col-sm-9">
|
|
<input id="database" type="text" class="form-control" @bind="@_database" />
|
|
</div>
|
|
</div>
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="security" HelpText="Select your security method" ResourceKey="Security">Security:</Label>
|
|
<div class="col-sm-9">
|
|
<select id="security" class="form-select custom-select" @bind="@_security">
|
|
<option value="integrated" selected>@Localizer["Integrated"]</option>
|
|
<option value="custom">@Localizer["Custom"]</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
@if (_security == "custom")
|
|
{
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="uid" HelpText="Enter the username to use for the database" ResourceKey="Uid">User Id:</Label>
|
|
<div class="col-sm-9">
|
|
<input id="uid" type="text" class="form-control" @bind="@_uid" />
|
|
</div>
|
|
</div>
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="pwd" HelpText="Enter the password to use for the database" ResourceKey="Pwd">Password:</Label>
|
|
<div class="col-sm-9">
|
|
<div class="input-group">
|
|
<input id="pwd" type="@_passwordType" class="form-control" @bind="@_pwd" autocomplete="new-password" />
|
|
<button type="button" class="btn btn-secondary" @onclick="@TogglePassword" tabindex="-1">@_togglePassword</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="encryption" HelpText="Specify if you are using an encrypted database connection. It is highly recommended to use encryption in a production environment." ResourceKey="Encryption">Encryption:</Label>
|
|
<div class="col-sm-9">
|
|
<select id="encryption" class="form-select custom-select" @bind="@_encryption">
|
|
<option value="true">@SharedLocalizer["True"]</option>
|
|
<option value="false">@SharedLocalizer["False"]</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
@if (_encryption == "true")
|
|
{
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="trustservercertificate" HelpText="Specify the type of certificate you are using for encryption. Verifiable is equivalent to False. Self Signed is equivalent to True." ResourceKey="TrustServerCertificate">Certificate:</Label>
|
|
<div class="col-sm-9">
|
|
<select id="encryption" class="form-select custom-select" @bind="@_trustservercertificate">
|
|
<option value="true">@Localizer["Self Signed"]</option>
|
|
<option value="false">@Localizer["Verifiable"]</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
@code {
|
|
private string _server = String.Empty;
|
|
private string _database = "Oqtane-" + DateTime.UtcNow.ToString("yyyyMMddHHmm");
|
|
private string _security = "integrated";
|
|
private string _uid = String.Empty;
|
|
private string _pwd = String.Empty;
|
|
private string _passwordType = "password";
|
|
private string _togglePassword = string.Empty;
|
|
private string _encryption = "false";
|
|
private string _trustservercertificate = "false";
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
_togglePassword = SharedLocalizer["ShowPassword"];
|
|
}
|
|
|
|
public string GetConnectionString()
|
|
{
|
|
var connectionString = String.Empty;
|
|
|
|
if (!String.IsNullOrEmpty(_server) && !String.IsNullOrEmpty(_database))
|
|
{
|
|
connectionString = $"Data Source={_server};Initial Catalog={_database};";
|
|
}
|
|
|
|
if (_security == "integrated")
|
|
{
|
|
connectionString += "Integrated Security=SSPI;";
|
|
}
|
|
else
|
|
{
|
|
connectionString += $"User ID={_uid};Password={_pwd};";
|
|
}
|
|
connectionString += $"Encrypt={_encryption};";
|
|
connectionString += $"TrustServerCertificate={_trustservercertificate};";
|
|
|
|
return connectionString;
|
|
}
|
|
|
|
private void TogglePassword()
|
|
{
|
|
if (_passwordType == "password")
|
|
{
|
|
_passwordType = "text";
|
|
_togglePassword = SharedLocalizer["HidePassword"];
|
|
}
|
|
else
|
|
{
|
|
_passwordType = "password";
|
|
_togglePassword = SharedLocalizer["ShowPassword"];
|
|
}
|
|
}
|
|
} |