タグ付けされた質問 「asp.net-core」

ASP.NET Coreは、ウェブアプリケーションとクラウドアプリケーションを構築するための無駄のない、構成可能なクロスプラットフォームフレームワークです。GitHubの完全オープンソースです。ASP.NET Coreアプリは、完全な.NET Frameworkまたはそれより小さい.NET Coreを備えたWindows上で、または.NET CoreおよびMonoを備えたLinuxおよびMacOS上で実行できます。

1
IAsyncEnumerableがASP.NET Web APIでどのように機能するかについての説明
ASP.NET Web APIプロジェクトでIAsyncEnumerableを探索しているときに、興味深い動作が発生しました。次のコードサンプルを検討してください。 // Code Sample 1 [HttpGet] public async IAsyncEnumerable<int> GetAsync() { for (int i = 0; i < 10; i++) { await Task.Delay(1000); yield return i; } } // Code Sample 2 [HttpGet] public async IAsyncEnumerable<string> GetAsync() { for (int i = 0; i < 10; i++) { …

1
netcore api 3.1でAuthorizationFilterContextを読み取る
APIキーをチェックするカスタムポリシーを実装したnetcore 2.2プロジェクトが機能しています。 startup.csに私はこのようにこのポリシーを追加しています //Add Key Policy services.AddAuthorization(options => { options.AddPolicy("AppKey", policy => policy.Requirements.Add(new AppKeyRequirement())); }); 私のAppKeyRequirementでは、AuthorizationHandlerから継承し、次のように着信リクエストのキーを解決します protected override Task HandleRequirementAsync(AuthorizationHandlerContext authContext, AppKeyRequirement requirement) { var authorizationFilterContext = (AuthorizationFilterContext)authContext.Resource; var query = authorizationFilterContext.HttpContext.Request.Query; if (query.ContainsKey("key") && query.ContainsKey("app")) { // Do stuff これはnetcore 3.1では機能しません 次のエラーが発生します。 タイプ「Microsoft.AspNetCore.Routing.RouteEndpoint」のオブジェクトをタイプ「Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext」にキャストできません。 コア3以上でこれを行う正しい方法は何ですか? Kirk Larkinが指摘したように、.net 3.0以降での正しい方法は、IHttpContextAccessorをAuthハンドラーに挿入して使用することです。 この時点での私の質問は、これをどのように注入するのですか?これをstartup.csで渡すことはできません。少なくとも方法はわかりません。 どんなアイデア/ヒントも大歓迎です。

1
.Net Core 3 IStringLocalizer.WithCulture(CultureInfo)は廃止されました
プロジェクトを.Net Core 2.2から.Net Core 3.0にアップグレードしました。 すべての警告とエラーを修正しようとした後、私は今この警告の解決策に資金を提供しようとしています: 'IStringLocalizer.WithCulture(CultureInfo)' is obsolete: 'This method is obsolete. Use `CurrentCulture` and `CurrentUICulture` instead.' これを使用して、ログインしているユーザーごとにWebサイトの言語を変更しています。ユーザーごとのウェブサイトカルチャーを変更するためのこの実装があります。 public class CultureLocalizer : ICultureLocalizer { private readonly IStringLocalizer localizer; public CultureLocalizer(IStringLocalizerFactory factory) { var type = typeof(Resources.PageResources); var assemblyName = new AssemblyName(type.GetTypeInfo().Assembly.FullName); localizer = factory.Create("PageResources", assemblyName.Name); } // if we …

1
ASP.NET CoreでのWindows認証:手動ログインと自動イントラネットログインおよび使用可能なグループ
ログインしているユーザーを識別するためにローカルイントラネットWindows認証と連携するASP.NET Core 3.0アプリケーションがあります。標準のWindows認証動作を使用して、ユーザーのWindowsIdentity問題を問題なくキャプチャできます。 ただし、ユーザーがイントラネットブラウザーの自動ログイン(つまり、パスワードダイアログなし)を使用してブラウザーにログインする方法、またはブラウザーの[パスワード]ダイアログボックスを使用して明示的にログインする方法に応じて、ユーザーのグループに異なる結果が表示されます。 以下は、フィルタリングされたグループメンバーシップリスト(組み込みアカウントを除く)を含むユーザー情報をエコーバックするAPIリクエストです。左側は手動ログイン、右側は自動ログインです。 明示的なログインでは、ユーザーが所属するすべてのカスタムグループが正しく表示されます。ただし、自動ログインの場合、これらの同じグループは表示されません。 また、サーバーのUserインスタンスとIdentityインスタンスを詳しく調べたところ、ユーザーのまったく同じSIDを参照しているため、グループメンバーシップに対して異なる結果が返されるのは奇妙に思われます。 同じアカウントが返されたときにグループリストが異なる理由はありますか?グループはローカルであるため、ドメインアクセスによる問題ではないことに注意してください。 注:ローカルホストでもローカルでテストしています。これをテストするために、ここでWindowsプロキシ設定を設定します。 チェックボックスをオフにすると、ログインする必要があります。それらをオンにして(とにかくChromiumブラウザーで)、ブラウザーのログインダイアログに自分の資格情報を明示的に入力する必要があります。

1
Programクラスは静的である必要がありますか?
新しいASP.NET Core 3プロジェクトを作成した後、Visual Studio 2019で次の警告が表示されます。 警告CA1052タイプ「プログラム」は静的ホルダータイプですが、静的でもNotInheritableでもありません public class Program { public static void Main(string[] args) { // ... } public static IHostBuilder CreateHostBuilder(string[] args) => // ... } 対 public static class Program { public static void Main(string[] args) { // ... } public static IHostBuilder CreateHostBuilder(string[] args) => // …

3
JwtBearerEvents.OnMessageReceivedが最初の操作の呼び出しで呼び出されない
IDプロバイダー(IDP)としてWSO2を使用しています。「X-JWT-Assertion」というヘッダーにJWTを配置しています。 これをASP.NET Coreシステムにフィードするために、OnMessageReceivedイベントを追加しました。これによりtoken、ヘッダーで指定された値にを設定できます。 ここに私がそれをしなければならないコードがあります(重要な部分は非ブラケットコードの最後の3行です): services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; }) .AddCookie() .AddJwtBearer(async options => { options.TokenValidationParameters = await wso2Actions.JwtOperations.GetTokenValidationParameters(); options.Events = new JwtBearerEvents() { // WSO2 sends the JWT in a different field than what is expected. // This allows us to feed it in. OnMessageReceived …

1
.net MVC Coreで動的エラーページを処理するにはどうすればよいですか?
現在私は持っています app.UseExceptionHandler("/Home/Error"); 元のパスからの相対パスにしたい。 たとえば Tenant1 / PageThatThrowsError、次にapp.UseExceptionHandler( "Tenant1 / Home / Error"); しかし Tenant2 / PageThatThrowsError、次にapp.UseExceptionHandler( "Tenant2 / Home / Error"); できると思った app.UseExceptionHandler( new ExceptionHandlerOptions { ExceptionHandler = async (ctx) => { //logic that extracts tenant ctx.Request.Path = new PathString(Invariant($"{tenant}/Home/Error")); } } ); しかし、これは500をスローします 編集:たとえばリダイレクトを使用するすべての現在のソリューションは現在のエラーコンテキストを失い、コントローラーがたとえばHttpContext.Features.Get()を呼び出すことを許可しません。

4
DockerでVSから実行しようとすると、エラー「getcwd()が失敗しました:そのようなファイルまたはディレクトリはありません」
docker-composeを使用してDockerでローカルに実行するように設定されたプロジェクトがあります。最近まで、問題なく動作しています。私はこれに影響するはずの何かを変更したとは思わない(おそらくVSのアップグレードを除いて?)、そして古いコミットにロールバックすることを試みた。すべての場合において、Visual Studioの出力ウィンドウに次のように表示されるエラーメッセージが表示されます。 docker exec -i f93fb2962a1e sh -c ""dotnet" --additionalProbingPath /root/.nuget/packages --additionalProbingPath /root/.nuget/fallbackpackages "bin/Debug/netcoreapp3.1/MattsTwitchBot.Web.dll" | tee /dev/console" sh: 0: getcwd() failed: No such file or directory It was not possible to find any installed .NET Core SDKs Did you mean to run .NET Core SDK commands? Install a .NET Core …

1
EF Core 3.0と2.2でストアドプロシージャを実行する
EF Core 3.0の変更、特にの廃止に対応するためにコードを更新しようとしていますExecuteSqlCommand。 次のコードは2.2で機能していましたが、前述のように、私は取り除く必要がありますExecuteSqlCommand。 SqlParameter srcid = new SqlParameter("@srcCharacterId", participantApplication.CharacterId); SqlParameter newid = new SqlParameter("@newCharacterId", newCharacterId); SqlParameter pResult = new SqlParameter { ParameterName = "@pResult", SqlDbType = System.Data.SqlDbType.Bit, Direction = System.Data.ParameterDirection.Output }; _db.Database.ExecuteSqlCommand("pCharacterCopy @srcCharacterId, @newCharacterId, @pResult OUTPUT", srcid, newid, pResult); 呼び出しをExecuteSqlRaw(他はすべて同じにして)に変更しようとしましたが、コンパイルはできますが、実行時に次の例外がスローされます。 SqlParameterCollectionはnull以外のSqlParameterタイプのオブジェクトのみを受け入れ、SqlParameterオブジェクトは受け入れません 私はデバッガで確認しましたSqlParameterが、どれもnull ではありません。呼び出しがExecuteSqlRaw正しくフォーマットされていないと思われますが、必要のないLinqクエリに呼び出しを統合する以外の例は見つかりません。ストアドプロシージャの呼び出しを開始し、完了したら出力パラメーターを確認したいだけです。

1
ASP.NET Core 3を使用したビデオのストリーミング
現在、.NET Coreを使用した最初のプロジェクトとして、ASP.NET Core 3でAPIを構築しています。 私は現在、React.jsフロントエンドにビデオを送信してブラウザーで視聴しようとしています。ファイルとビデオのアップロードは問題なく機能し、以下に表示されている方法でもファイルがクライアントに送信されますが、ビデオが数秒より長い場合、ビデオプレーヤーは本当に遅く、スキップするのにも長い時間がかかりますビデオの数秒。それは、ファイルが最初に完全にダウンロードされてから再生されるためだと思います。 [Route("getFileById")] public FileResult getFileById(int fileId) { var context = new DbContext(); var file = context.File.Find(fileId); if (file == null) { Console.WriteLine("file " + fileId + " not found"); return null; } var content = new FileStream(file.Name, FileMode.Open, FileAccess.Read, FileShare.Read); var response = File(content, "application/octet-stream"); return …

1
RazorコンポーネントとViewコンポーネント
最近、Asp .NET Core 2.2から3.1にアップグレードし、かみそりのページでRazorコンポーネントを使用できます。ブレザーと同じファイル上のすべてを使用することを除いて、基本的にはビューコンポーネントと同じように見えます。検索しようとしましたが、View Componentsの代わりにRazor Componentsを使用するように記載されているドキュメントを何も読んでいません。 だからここに質問があります... Razorページでビューコンポーネントの代わりにRazorコンポーネントを使用するポイントは何ですか?いいですか?デフォルトのビューとロジックを含む分離コードファイルを設定する必要があり、JavaScriptを親ビューでのみ使用できないため、ビューコンポーネントを設定するのは少し面倒です。私のアプリのほとんどはViewコンポーネントでいっぱいで、かみそりコンポーネントに切り替えることの利点は何だろうと思っていましたか?

2
アプリケーションコードから「BuildServiceProvider」を呼び出すと、シングルトン警告のコピーが生成されます。どうすればこれを回避できますか?
別のプロジェクトの最後に4行を貼り付けたところ、うまくいきましたが、警告が表示されます。DIが十分に理解されていないことは明らかです。 public void ConfigureServices(IServiceCollection services) { if (HostingEnvironment.EnvironmentName == "Local") { services.AddHealthChecksUI() .AddHealthChecks() .AddCheck<TestWebApiControllerHealthCheck>("HomePageHealthCheck") .AddCheck<DatabaseHealthCheck>("DatabaseHealthCheck"); } services.Configure<PwdrsSettings>(Configuration.GetSection("MySettings")); services.AddDbContext<PwdrsContext>(o => o.UseSqlServer(Configuration.GetConnectionString("PwdrsConnectionRoot"))); services.AddMvc(o => { o.Filters.Add<CustomExceptionFilter>(); }); services.AddCors(options => { options.AddPolicy("CorsPolicy", b => b .SetIsOriginAllowed((host) => true) .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials()); }); services.AddSwaggerDocument(); services.AddHttpContextAccessor(); services.AddAutoMapper(typeof(ObjectMapperProfile)); services.AddTransient<IEmailSender, EmailSender>(); services.AddScoped(typeof(IAppLogger<>), typeof(LoggerAdapter<>)); services.AddScoped(typeof(IAsyncRepository<>), typeof(Repository<>)); services.AddScoped<IRfReportTypeRepository, RfReportTypeRepository>(); …

2
複数のユーザータイプのID-DbContextデザイン
.NET CoreのIdentityパッケージIdentityUser<Guid>を、単一のクラスで拡張された複数のクラスで使用しようとしていますUserRole。 UserStore<T>ユーザータイプごとに拡張する複数のクラスと、拡張する1つのクラスがありますRoleStore<UserRole>。 以下は私のstartup.csです: services.AddIdentity<InternalUser, UserRole>(IdentityOptions) .AddDefaultTokenProviders() .AddUserStore<InternalUserStore>() .AddRoleStore<GenericUserRoleStore>(); services.AddIdentityCore<Contractor>(IdentityOptions) .AddRoles<UserRole>() .AddDefaultTokenProviders() .AddUserStore<ContractorUserStore>() .AddRoleStore<GenericUserRoleStore>(); services.AddIdentityCore<Homeowner>(IdentityOptions) .AddRoles<UserRole>() .AddDefaultTokenProviders() .AddUserStore<HomeownerUserStore>() .AddRoleStore<GenericUserRoleStore>(); 私DbContextは延長していませんIdentityDbContext: public sealed class EntityDbContext: DbContext { } 複数のエラーが発生したため、以下を追加しましたDbContextが、コメント化しました。 public DbSet<IdentityUserClaim<Guid>> UserClaims { get; set; } public DbSet<IdentityUserRole<Guid>> UserRoles { get; set; } さまざまなエラーが発生します。 PluginType IUserStoreのインスタンス 'Dal.IdentityStores.InternalUserStore'およびPluginTypeのインスタンス 'RoleManager'でビルドエラーが発生しましたMicrosoft.AspNetCore.Identity.RoleManager 1[Models.Entities.Users.UserRole] - and …

2
ASP.NET Coreでランタイム認証を設定するにはどうすればよいですか?
私はロールベースのモジュール管理があり、いつでもいつでも変更されるという点でアプリケーションを作成しています。シナリオ: ユーザーが従業員を作成および表示するアクセス権を持っている場合、ユーザーは従業員を作成および表示することしかできませんが、将来の管理者はユーザーの役割を作成および表示から表示および削除に変更し、ユーザーはそのアクティビティのみを実行できます。 私は試し[Authorize(Roles ="Staff")]ますが、管理者がランタイムを変更した場合、それが管理されていません。 誰かがこれを調べて私に連絡してもらえますか?

2
ローカライズされたMicrosoft.CodeAnalysis。*。resources.dllファイルがASP.NET Coreによって公開されないようにする方法
ASP.NET Core 3.0プロジェクトを公開すると、ローカライズされたいくつかのフォルダーが表示されます。これらのフォルダーには、表示されている4つのアセンブリがあります。これらのフォルダとファイルが含まれる理由がわかりません。どのパッケージもパッケージを参照していませんCodeAnalysis。 <PreserveCompilationContext>false</PreserveCompilationContext>csprojファイルに追加しましたが、役に立ちませんでした。それらを除外する方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.