V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rv54ntjwfm3ug8
V2EX  ›  程序员

萌新求助, ASP .NET Core 框架是一个完整的 Web 框架吗,是不是内置的功能很少?连 BasicAuth 都需要自己实现。

  •  
  •   rv54ntjwfm3ug8 · 2022-03-03 17:11:26 +08:00 · 4249 次点击
    这是一个创建于 999 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天刚开始学基于 .NET Core 的 Web 开发,之前接触的 Go/Rust 配置固定密码的 BasicAuth 鉴权都只要添加一个现成的中间件就行了,ASP .NET Core 还要手动读请求头判断。
    另外大部分 ASP .NET Core 开发的项目数据库大部分都用 MSSQL 吗,用 PostgreSQL 的多吗?
    31 条回复    2022-03-05 14:53:26 +08:00
    thinkershare
        1
    thinkershare  
       2022-03-03 19:09:33 +08:00   ❤️ 2
    请你先给出完整 Web 框架的定义?
    你这里每一个问题都是槽点, BasicAuth 被淘汰了, ASP.NET Core 是一个基于中间件架构的 Web 框架, 它非常基础, 几乎不提供非通用的东西.
    你的另外一个问题没有人能够回答你, 因为没有详细的统计数据支持, 不过我可以告诉你我呆过的公司从 SQL Server, Oracle, MySQL, PostgreSQL, MongoDB 都有, 用 MySQL 是最多的
    mineralsalt
        2
    mineralsalt  
       2022-03-03 19:10:56 +08:00
    别学这个了, 浪费时间, 还是学一些主流的比较好
    INCerry
        3
    INCerry  
       2022-03-03 19:12:23 +08:00   ❤️ 2
    你也可以安装现成的 NuGet 包来实现需求,微软官方文档
    https://docs.microsoft.com/zh-cn/aspnet/core/security/authorization/introduction?view=aspnetcore-6.0
    数据库无所谓,你想用啥用啥,我们公司的情况就是,大数据连有使用 TIDB ,小数据量用 MYSQL ,也有一些 MSSQL 的应用,PostgreSQL 也在项目中有使用
    ragnaroks
        4
    ragnaroks  
       2022-03-03 19:13:13 +08:00   ❤️ 2
    "aspnet core" 是 dotnet 的 Web 框架,自身包含绝大多数实现,比如 JWT/CORS/WS 等等,身份验证之类也是以中间件形式提供的

    你的问题在于没有看文档
    https://docs.microsoft.com/zh-cn/aspnet/core/
    https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/?view=aspnetcore-3.1

    另外最好使用 VS 来进行开发,这样你有什么想法的时候可以输入你的想法并按下 CTRL+dot(.) 试试
    lybcyd
        5
    lybcyd  
       2022-03-03 19:15:28 +08:00 via Android   ❤️ 1
    每个框架都有自己的功能取舍,没有完全覆盖其他框架的功能挺正常的。没有的功能要么找一下第三方包,要么自己写。
    如果想要功能全的,就我接触过的框架而言,自带功能最全的是 Java 的 spring 和 php 的 laravel ,你能想到的 web 功能基本都自带解决方案。
    BrettD
        6
    BrettD  
       2022-03-03 19:15:50 +08:00 via iPhone   ❤️ 2
    ASP .NET Core 居然不是主流?
    INCerry
        7
    INCerry  
       2022-03-03 19:16:05 +08:00
    thinkershare
        8
    thinkershare  
       2022-03-03 20:22:40 +08:00   ❤️ 1
    不是提供的功能太少, 而是旧版功能太多了. 所以微软才将 其实干掉了, 然后在 Core 中不断做细粒度的解耦, 因为并不是你需要的功能其它人都需要.
    另外使用 Google 搜索引擎搜索一下, Stack Overflow 上关于这个问题的已经有了明确而完整的答案!
    userforg2021
        9
    userforg2021  
       2022-03-03 21:25:59 +08:00
    @BrettD 为什么不是主流呢?因为 xx 是原罪
    forgottencoast
        10
    forgottencoast  
       2022-03-03 22:43:40 +08:00
    @mineralsalt OP 刚接了一个 ASP.NET Core 的工作,月薪 10W 人民币,香的很。
    mineralsalt
        11
    mineralsalt  
       2022-03-03 23:07:13 +08:00
    @forgottencoast 这么多么, 月薪 10W 的人还要写代码啊
    GiantHard
        12
    GiantHard  
       2022-03-04 00:34:49 +08:00 via Android   ❤️ 10
    楼主掌握了在互联网正确提问的姿势
    ASP.NET Core 中怎么实现 Basic Auth ?
    ✔️ASP .NET Core 框架是一个完整的 Web 框架吗,是不是内置的功能很少?连 BasicAuth 都需要自己实现?
    jbgz
        13
    jbgz  
       2022-03-04 09:11:36 +08:00   ❤️ 1
    ASP .NET Core 居然不是主流?
    encro
        14
    encro  
       2022-03-04 09:16:42 +08:00
    Postgresql 选择没错的,Mysql 只能做 OLTP ,PG 可以 OLTP+OLAP ,我最近就在为 MySQL 转 OLAP 头痛。
    skinny
        15
    skinny  
       2022-03-04 09:17:45 +08:00
    槽点难道不是微软为了 Razor ,搞得在使用一些组件(比如 Cookies 认证)开发 Web API 时会出现反直觉的问题嘛(比如一个普通 API 接口哪需要跳转登录页)……

    还有我个人觉得 Identity 是真的难用不好用
    sjzjams
        16
    sjzjams  
       2022-03-04 09:21:04 +08:00
    你说的那些框架是开发者们又给你封装了一层的,也是需要有人做这件事儿的,难以想象现在.net 都被误会成这样了哈哈哈哈
    afirefish
        17
    afirefish  
       2022-03-04 09:28:38 +08:00
    看来.net 凉了啊,ASP.NET Core 居然都不是主流了
    ClorisYe
        18
    ClorisYe  
       2022-03-04 09:38:12 +08:00
    @skinny 我也觉得 identity 是很难用,你有没有好一点的现成库推荐?另外,微软文档说,保护 api 项目推荐使用 identity server
    skinny
        19
    skinny  
       2022-03-04 09:57:53 +08:00
    @ClorisYe 我没有找到靠谱好用的第三方库。我现在改成按需求自己写……因为这比改造自定义 Identity 费的脑细胞少,也没那么复杂那么绕。我不想用 IdentityServer4……
    skinny
        20
    skinny  
       2022-03-04 10:02:17 +08:00
    @ClorisYe API 访问认证现在也换成 Token 了,就一个单纯密码学安全随机的足够长的字符串,写一个 AuthenticationHandler 就好了,就算不用 asp.net core 换其它也简单容易,还有状态,随时可撤销。
    RickyC
        21
    RickyC  
       2022-03-04 10:03:35 +08:00
    @thinkershare 人家说了,是萌新,你还让人家定义
    thinkershare
        22
    thinkershare  
       2022-03-04 11:22:32 +08:00
    @RickyC 自己不知道, 就要学会好好提问, 否则我才懒得损他. V2EX 这种翻墙才能上的网站, 他说自己是萌新, 你也信. 还在网上学一堆奇葩的提问方式, 萌新就更要学会怎么提问了, 对自己不了解的东西保持谦虚, 学会好好说话, 这样才有人会好好回答. 自己在提问中输出情绪, 我也只能在回答中输出情绪了.
    sunhelter
        23
    sunhelter  
       2022-03-04 12:32:45 +08:00
    .net 学的人那么少,工作机会那么多,不学这个去学 java 跟别人挤破头吗~
    skiy
        24
    skiy  
       2022-03-04 12:41:05 +08:00
    https://github.com/siteserver/cms

    看看这款,支持 postgres 。
    zxCoder
        25
    zxCoder  
       2022-03-04 16:07:31 +08:00
    玩这套的主流都是用微软的东西,mssql ,用 vs 开发,服务器也用 windows
    quan01994
        26
    quan01994  
       2022-03-04 17:21:33 +08:00
    services.AddAuthentication("BasicAuthentication")
    .AddScheme<AuthenticationSchemeOptions, BasicAuthenticationHandler>("BasicAuthentication", null);

    public class BasicAuthenticationHandler : AuthenticationHandler<AuthenticationSchemeOptions>
    {
    }

    不太清楚现成是什么意思。现成就是不用自己写一段代码吗 。
    mmdsun
        27
    mmdsun  
       2022-03-04 19:07:36 +08:00 via iPhone
    怎么会? JWT 都可以,几句话的配置。用 MiniAPI 写小项目很爽。《.NET6 之 MiniAPI(十):基于策略的身份验证和授权》 https://mp.weixin.qq.com/s/ZuWNPJGMWWMRrgOvIlIyzg
    circsqua
        28
    circsqua  
       2022-03-04 23:56:14 +08:00
    .NET……主流不主流不能肯定
    但是大家谈论的少是真
    找资料不好找(名字背点锅)
    找的教程很多都是阿三录的,不是说水平不行,只是听起来脑壳痛
    pming1
        29
    pming1  
       2022-03-05 08:47:46 +08:00
    ASP .NET Core 居然不是主流?
    hez2010
        30
    hez2010  
       2022-03-05 14:50:20 +08:00
    ASP.NET Core 是一个完整的框架,不过很多组件都是以中间件的形式提供的,包括你说的 BasicAuthentication 在内。
    这样用不到的组件可以不引入代码,有效提升性能和减小占用。

    建议多阅读文档: https://docs.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-6.0 。( en-us 改成 zh-cn 就是中文版,但是中文版有些是机器翻译可能反而不如英文版好懂)
    hez2010
        31
    hez2010  
       2022-03-05 14:53:26 +08:00
    另外 PostgreSQL 用得很多,反而用 MSSQL 的没那么多。PostgreSQL 的 EF Core 组件: https://github.com/npgsql/efcore.pg
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5737 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:35 · PVG 09:35 · LAX 17:35 · JFK 20:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.