在Web Api中使用Postman授权属性认证

2023-12-26

我正在使用 RESTful 服务,并发现 Postman 是 GET、POST 和测试 API 的最佳插件之一。

我在邮递员中找到基本身份验证、无身份验证、DIgest Auth、OAuth、AWS。如何测试授权控制器和方法。

我知道授权属性检查user.Identity.IsAuthenticated

我不确定如何使用 Postman 在具有特定角色的控制器和方法中传递授权,如下所示

[Authorize(Roles = "Admin, Super User")]

public ActionResult AdministratorsOnly()
{
    return View();
}

这是我的启动文件

  public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }

    public static string PublicClientId { get; private set; }

    // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
    public void ConfigureAuth(IAppBuilder app)
    {
        // Configure the db context and user manager to use a single instance per request
        app.CreatePerOwinContext(ApplicationDbContext.Create);
        app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

        // Enable the application to use a cookie to store information for the signed in user
        // and to use a cookie to temporarily store information about a user logging in with a third party login provider
        app.UseCookieAuthentication(new CookieAuthenticationOptions());
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

        // Configure the application for OAuth based flow
        PublicClientId = "self";
        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            TokenEndpointPath = new PathString("/Token"),
            Provider = new ApplicationOAuthProvider(PublicClientId),
            AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
            // In production mode set AllowInsecureHttp = false
            AllowInsecureHttp = true
        };

        // Enable the application to use bearer tokens to authenticate users
        app.UseOAuthBearerTokens(OAuthOptions);         
    }

1. 在Web api中启用CORS

将以下内容附加到 Startup.cs 配置方法中的 IAppBuilder(如果您遇到问题,请在此处阅读更多信息如何在WebAPI 2中进行CORS身份验证? https://stackoverflow.com/questions/20079813/how-to-make-cors-authentication-in-webapi-2)

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

努吉特包here https://www.nuget.org/packages/Microsoft.Owin.Cors/

2.通过Postman获取token

3.使用token并从web api获取数据

注意:令牌响应包含 token 的 access_token 和 bearer 的 token_type。在请求中使用时,请在授权 http 标头的值之间添加空格。 auth 服务器将在请求到达请求的控制器中的 [Authorize] 属性之前解析令牌并设置 user.Identity

另外,请确保 ApplicationOAuthProvider 将包含当前角色的 ClaimIdentity 添加到令牌中。否则请求将被拒绝。测试它的一种方法是仅使用不带角色的 [Authorize] 属性,然后查看邮递员是否可以访问控制器

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Web Api中使用Postman授权属性认证 的相关文章

随机推荐

  • Scala:为什么 Seq.contains 采用 Any 参数,而不是序列类型的参数?

    例如为什么List 1 2 3 4 contains wtf 甚至编译 如果编译器拒绝这个不是很好吗 有很多有趣的答案 但这是我自己的理论 如果contains没有收到Any then Seq不可能是共变的 例如 参见Set 它不是协变的并
  • 自定义 Tailwind CSS 时引用默认颜色

    我在尝试着extendTailwind CSS 的调色板使用它们tailwind config js文件 我的目标是创建一组主要颜色和次要颜色 供我在设计网站时使用 我想通过引用默认顺风主题中已有的颜色来做到这一点 基于文档 https t
  • 安卓下载管理器

    我想我有一个相当简单的问题 http www vogella com blog 2011 06 14 android downloadmanager example http www vogella com blog 2011 06 14
  • 什么时候需要在 Java 中使用 AtomicBoolean?

    我如何使用 AtomicBoolean 以及该类的用途是什么 当多个线程需要检查和更改布尔值时 例如 if initialized initialize initialized true 这不是线程安全的 您可以使用以下方法修复它Atomi
  • Active Directory COM 异常 - 发生操作错误 (0x80072020)

    我遇到间歇性 COM 异常 发生操作错误 0x80072020 如下所示 当我尝试使用该方法查询 Active Directory 时GroupPrincipal FindByIdentity http msdn microsoft com
  • React select onChange 不起作用

    JsFiddle https jsfiddle net 69z2wepo 9956 https jsfiddle net 69z2wepo 9956 我在渲染函数中返回一个选择元素react js code 但每当我改变select值 函数
  • Firebase on 和once 有何区别?

    i am facing problems with understanding more about on and once in firebase API Assume I have this DB structure When I li
  • 如何使用整个训练示例来估计 sklearn RandomForest 中的类概率

    我想使用 scikit learn RandomForestClassifier 来估计给定示例属于一组类的概率 当然是在事先训练之后 我知道我可以使用以下方法获得类别概率predict proba http scikit learn or
  • 48 位/6 字节长的时间戳格式是什么?

    我有一个文件的时间戳格式我不明白 我无权访问创建该文件的代码 并且它不是标准格式 因此我在十六进制编辑器中逐段进行查看 并且我发现了我无法找到的格式的时间戳查找有关的信息 这是一个 48 位数字 其中 12 位表示年份 从 0 开始 4 位
  • 参数和NULL

    我在使用 RPostgres 和 RPostgreSQL 将 NULL 作为 INSERT 参数查询传递时遇到问题 在 PostgreSQL 中 create table foo ival int tval text bval bytea
  • Angular:strictTemplates - 如何正确分配变量

    我在我的Sample html某处定义的
  • mysql innodb 事务并发

    我有3张桌子 Products 产品编号最大可销售产品数可以销售给个人的最大产品数 购买 user id产品编号数量 预订 产品编号 user id数量 希望你能理解这个结构 现在 当用户尝试购买产品时 我必须检查 max products
  • 防止 QDockWidget 自动调整大小行为

    Qt 5 5 0 在我的应用程序中 我有一个 QGraphicsView 作为主要小部件和一个 QDockWidget 作为属性 目标是让用户在图形视图中选择一个项目 并根据该项目显示该项目的适当属性 我通过使用属性管理器小部件来实现此目的
  • Gunicorn 工人创建僵尸进程

    这不是一个真正的问题 但我确实想了解发生了什么 以及为什么会创建这些僵尸进程 还想看看是否有针对这种事情的好的做法 现在我做kill HUP在主 Gunicorn 进程上 它会摆脱僵尸进程 我会自动kill HUP每天早上进行日志轮换 我想
  • Excel 求解器忽略 VBA 中的约束

    我正在尝试使用求解器找到简单投资组合的最大回报 在工作表中直接使用 Solver 可以正常工作 但在 VBA 中设置命令时则不然 相反 正如您从屏幕截图中看到的 它忽略了其中一个约束 T10 中计算的权重总和应 1 有趣的是 如果我将第三行
  • cx_Freeze 帮助:有没有办法不打开控制台?

    我正在尝试将 python 游戏 用 pygame 制作 转换为 Windows 的 exe 文件 我使用 cx Freeze 进行了操作 那里没有问题 问题是 当我启动 myGame exe 时 它 会打开正常的 Pygame 窗口和控制
  • 如何清空 BlockingCollection

    我有一个线程将项目添加到BlockingCollection 在我正在使用的另一个线程上foreach var item in myCollection GetConsumingEnumerable 如果出现问题 我想打破我的 foreac
  • Vimscript:列出的缓冲区数量

    在我的 vim 脚本中 我需要获取所有被视为列出 可列出的缓冲区的计数 即所有执行此操作的缓冲区 not具有未列出的 u 属性 推导该值的推荐方法是什么 你可以使用bufnr 获取最后一个缓冲区的编号 然后创建一个 列出从 1 到该数字并过
  • 使用指针嵌套 std::map

    我在地图内使用地图 并希望访问第二个地图中的特定成员 std map
  • 在Web Api中使用Postman授权属性认证

    我正在使用 RESTful 服务 并发现 Postman 是 GET POST 和测试 API 的最佳插件之一 我在邮递员中找到基本身份验证 无身份验证 DIgest Auth OAuth AWS 如何测试授权控制器和方法 我知道授权属性检