我正在尝试使用EditForm.
出于某种原因,oninput如果使用InputText,似乎不会调用该事件,但它使用一个简单的input元素工作。
我错过了什么吗?
这是一个 HTML 示例:
<EditForm Model="@Model" OnValidSubmit="@OnValidSubmit" id="authorize">
<h1 class="mb-3">
<span class="d-block">Authorize</span>
</h1>
<DataAnnotationsValidator />
<div class="form-group">
<label class="sr-only" for="AuthorizeUsername">Username</label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text"><i class="fas fa-user"></i></div>
</div>
<InputText type="text" class="form-control" id="AuthorizeUsername" placeholder="Username" @bind-value="@Model.Username" @bind-value:event="oninput" />
</div>
</div>
<div class="form-group">
<label class="sr-only" for="AuthorizePassword">Password</label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text"><i class="fas fa-asterisk"></i></div>
</div>
<InputText type="password" class="form-control" id="AuthorizePassword" placeholder="Password" @bind-value="@Model.Password" @bind-value:event="oninput" />
</div>
</div>
<div class="form-group">
<ValidationSummary />
<button …Run Code Online (Sandbox Code Playgroud) 所以我有一个 Windows 服务应用程序,并想开始将其移植到 .NET Core。该应用程序使用套接字、自托管 mvc、计时器等长时间运行。我计划将应用程序转换为 .NET core,以便能够在 Windows/Linux 等上运行它。问题是正确的方法是什么实施服务代码?例如,我需要有一个提供 MVC/API 服务的 Web 主机以及处理套接字、事件等的实际服务实现。我发现目前的方法是从BackgroundService https://learn 继承服务代码类。 microsoft.com/en-us/dotnet/api/microsoft.extensions.hosting.backgroundservice?view=aspnetcore-3.0 所以问题是BackgroundService是否是我应该查看的还是有其他更合适的方法?
谢谢。
我有一项服务,负责在用户登录和控制台会话连接后启动/监控用户会话中的交互过程.服务设置为自动启动,以便在用户登录前启动并运行.首次登录时一切正常,我可以正确启动/重启用户进程.
什么情况是,如果用户退出并重新登录服务不再能正常启动用户进程.CreateProcessAsUser不返回任何错误,但是一旦用户进程启动,它将退出-1073741502(0xC0000142)退出代码.
如果我重新启动该服务,那么它再次能够启动用户进程而没有任何错误.
如果需要,我可以发布服务如何创建用户进程的完整源代码.
编辑
try
{
//WE ALREADY HAVE A CLIENT ATTACHED , DONT START A NEW ONE
if (ClientProcessId != null)
return;
var ACTIVE_CONSOLE_SESSION = ListSessions()
.Where(SESSION => SESSION.State == WTS_CONNECTSTATE_CLASS.WTSActive)
.FirstOrDefault();
if (ACTIVE_CONSOLE_SESSION == null)
return;
CONSOLE_SESSION_ID = (uint)ACTIVE_CONSOLE_SESSION.Id;
IntPtr USER_TOKEN = IntPtr.Zero;
IntPtr ENVIRONMENT = IntPtr.Zero;
IntPtr LINKED_TOKEN = IntPtr.Zero;
try
{
try
{
if (!Wtsapi32.WTSQueryUserToken(CONSOLE_SESSION_ID.Value, out USER_TOKEN))
throw new Win32Exception();
}
catch (Win32Exception wex)
{
EntryPoint.TryWriteToCacheLog($"{nameof(Wtsapi32.WTSQueryUserToken)} : console session id {CONSOLE_SESSION_ID} error {wex.ErrorCode} …Run Code Online (Sandbox Code Playgroud) 所以我开始尝试使用 Span 来解析消息代码。虽然 api 看起来很容易理解,但我似乎找不到任何方法将切片转换为值。例如,我想将 ReadOnlySequence 转换为 int。当然,我可以调用 ToArray 并使用 BitConverter,但这实际上会创建一个新数组,这正是我试图避免的。
这是我如何获取切片的示例
var DHCP_OP = buffer.Slice(0, 1);
var DHCP_HTYPE = buffer.Slice(1, 1);
var DHCP_HLEN = buffer.Slice(2, 1);
var DHCP_HOPS = buffer.Slice(3, 1);
var DHCP_XID = buffer.Slice(4, 4);
var DHCP_SECS = buffer.Slice(8, 2);
var DHCP_FLAGS = buffer.Slice(10, 2);
var DHCP_CI_ADDR = buffer.Slice(12, 4);
var DHCP_YI_ADDR = buffer.Slice(16, 4);
var DHCP_SI_ADDR = buffer.Slice(20, 4);
var DHCP_GI_ADDR = buffer.Slice(24, 4);
var DHCP_CH_ADDR = buffer.Slice(28, 16);
var DHCP_SNAME = buffer.Slice(44, 64);
var DHCP_FILE = …Run Code Online (Sandbox Code Playgroud) 我正在尝试找出使用 Blazor (WASM) 实施 JWT 身份验证的正确方法。在浏览完文档后,我了解了内置组件的工作原理,但我仍然不清楚整个情况。因此,在我的场景中,我有一个将使用的 API 服务器,API 服务器可以颁发 JWT 令牌,并且它们可用于在需要时对端点进行身份验证。
所以现在我正在尝试找出每个组件的正确角色。首先,我们有 AuthenticationStateProvider,据我了解,该组件有责任从服务器获取 JWT 令牌,或者如果本地存储令牌,它还可以在需要时处理令牌刷新吗?
现在,由于我将使用类型化 HTTP 客户端,因此我将使用 IHttpClientFactory,同时我还将使用 AuthorizationMessageHandler 将令牌附加到所需的 HTTP 客户端实例。
当我尝试处理 IAccessTokenProvider 时,事情对我来说崩溃了,因为我知道一旦创建 HTTP 客户端并且即将发出 http 请求,就会调用默认实现。尚不清楚的是这个 IAccessTokenProvider 将如何获取令牌。所以问题是我是否应该创建自己的 IAccessTokenProvider 实现,如果是的话它应该如何处理令牌。正如我所说,我不会使用任何内置的身份验证提供程序,而是将拥有自己的 JWT 身份验证系统。
谢谢。
我正在使用并发字典来存储数据来实现一个简单的查找服务。由于使用此服务的大多数方法都是异步的,因此我正在考虑使用ValueTask<TResult>.
伪代码:
public ValueTask<string> GetResultAsync(string key)
{
return ValueTask.FromResult(_dictionary.FirstOrDefault(p => p.Key == key).Value
}
Run Code Online (Sandbox Code Playgroud)
这种方法有意义吗?有什么注意事项吗?
所以我有键和值的字典,其中值是一个对象,当在 .NET Core 和 .NET 之间交换二进制数据时,反之亦然,序列化失败
System.Runtime.Serialization.SerializationException: 'Unable to load type System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Collections.Generic.IDictionary`2[[SharedLib.HostPropertyType, DataInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] required for deserialization.'
这很有意义,因为目标类型位于另一个库中,问题是是否有办法在不创建自定义类型的情况下避免这种情况?
谢谢。