分类目录归档:ASP.NET

.NET 7 身份验证和授权的变化

.NET 7 于今天(2022.11.9)发布了,在 ASP.NET Core 的身份验证和授权的配置上做了一些简化,变化如下:

配置登录验证的方式,从 .NET 6 的:

builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme);

变成了 .NET 7 的:

builder.Services.AddAuthentication().AddCookie();

ASP.NET Core 会自动对认证方案进行推断,从而省略了参数的配置。

对于登录验证和授权的中间件,.NET 7 中不再需要手动引入,框架会自动推断是否使用,因此,app.UseAuthentication()app.UseAuthorization()也就不再需要了。

从而,运行一个完整的 ASP.NET Core MVC 程序所需要的最简配置是这样的:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddAuthentication().AddCookie(); // new feature
var app = builder.Build();
app.UseStaticFiles();
app.MapDefaultControllerRoute();
app.Run();

参考链接:https://auth0.com/blog/whats-new-in-dotnet-7-for-authentication-and-authorization/

Mono+Jexus部署asp.net mvc5.3报错

报错信息如下:
Type not found: 'System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,System.Web.WebPages.Razor,Version...

经过咨询一些群友,最后Mr. Seaning提出是Webpages大小写的问题。

在bin文件夹下有关Webpages的dll, pages都是小写的。这在windows平台上没有问题。但是到了linux下就不行了。解决办法是把Webpages相关的dll的文件名里的Webpages改名为 WebPages,注意P是大写。然后就没问题了。

注:只在vs2015生成的dll中有这个问题。

这个项目是用asp.net mvc5.3+dapper+npoi,目前在linux+jexus+mono平台上完美运行。

编译Libgdiplus遇到的问题

https://github.com/mono/libgdiplus/releases 下载最新版本
解压并执行 ./autogen.sh,在执行此步时遇到如下问题,并帖出解决办法

问题:执行 ./autogen.sh时报错 Error: You must have `autoconf’ installed to compile Mono.
解决办法:apt-get install autoconf

问题:执行./autogen.sh报错 Error: You must have `libtool’ installed to compile Mono.
解决:apt-get install libtool

问题:configure: error: You need to install pkg-config
解决: apt-get install pkg-config

问题:No package ‘glib-2.0’ found
解决:apt-get install glib-2.0

问题:No package ‘cairo’ found
解决:apt-get install libcairo2-dev

都解决后,最后执行 make && make install