小编Joã*_*nes的帖子

如何将OAuth2.0与OData客户端代码生成器集成?

我开发了一个实现OAuth2.0和OData的WebApi.

现在我正在建立一个客户端来测试到目前为止我已经实现了什么.我使用OData客户端代码生成器为OData生成了模板,但是如何在OData请求中引入de访问令牌?

知道如何扩展OData模板以引入OAuth2.0方案吗?或者更简单的方法是,如何在每个OData请求中引入OAuth访问令牌?

UPDATE

static void Main(string[] args)
  {
     var container = new Default.Container(new Uri(baseurl));

     TokenResponse accessToken = null;
     try
     {
        accessToken = GetToken();
     }
     catch (Exception ex)
     {
        Console.WriteLine("Can't do nothing without an access token...");
        return;
     }


     //I want to introduce in every request the following information:
     //Basic autentication header with cliendId + clientSecret
     //Access token

     //How do I introduce them before making the call on the OData service?
     foreach (var s in container.ServiceSessions)
     {
        string format = "; …
Run Code Online (Sandbox Code Playgroud)

c# oauth visual-studio odata asp.net-web-api

10
推荐指数
2
解决办法
2950
查看次数

从SQL Native存储过程中的表进行更新(Hekaton)

我正在将磁盘中的队列迁移到内存中的SQL Server 2016中以实现队列。

这是我的队列格式:

CREATE TABLE dbo.SimpleQueue
(
   MsgId BIGINT NOT NULL PRIMARY KEY NONCLUSTERED IDENTITY(1, 1),
   Payload VARCHAR(7500) NOT NULL,
   IsDeleted BIT NOT NULL
) WITH (MEMORY_OPTIMIZED=ON)
GO
Run Code Online (Sandbox Code Playgroud)

这是我的Enqueue本机SQL Server存储过程:

CREATE PROCEDURE dbo.Enqueue(@Payload VARCHAR(7500), @IsDeleted BIT)
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH
(TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = 'english')

  INSERT INTO dbo.SimpleQueue (Payload, IsDeleted) VALUES (@Payload, @IsDeleted); 

END
GO
Run Code Online (Sandbox Code Playgroud)

我正在尝试写下本Dequeue机SQL Server存储过程,但是在如何实现UPDATESELECT或变量表的使用结果方面遇到一些困难。

到目前为止,我尝试了:

CREATE PROCEDURE dbo.Dequeue(@BatchSize INT = 1) …
Run Code Online (Sandbox Code Playgroud)

sql-server queue stored-procedures in-memory-database memory-optimized-tables

5
推荐指数
1
解决办法
1206
查看次数

如何使用 Graph API 在 B2C 上访问用户的电子邮件

我想知道发送电子邮件的用户的电子邮件地址。在我的应用程序中,人们可以使用社交帐户(google/facebook/Microsoft)或本地帐户进行注册。创建本地帐户时,我们使用电子邮件。

我找到了有关如何存储电子邮件的信息。 https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-policies

电子邮件地址存储:电子邮件地址可能是用户流程的一部分。如果用户通过社交身份提供商进行身份验证,则电子邮件地址存储在 otherMails 属性中。如果本地帐户基于用户名,则电子邮件地址存储在强身份验证详细信息属性中。如果本地帐户基于电子邮件地址,则电子邮件地址存储在 signInNames 属性中。在任何这些情况下,都不能保证电子邮件地址会得到验证。租户管理员可以在本地帐户的基本策略中禁用电子邮件验证。即使启用了电子邮件地址验证,如果地址来自社交身份提供商且未更改,也不会进行验证。只有 otherMails 和 signInNames 属性通过 Active Directory Graph API 公开。

不知道为什么没有使用用户的“邮件”字段......而是使用 GraphApi:

我做了一个 GET:https : //graph.microsoft.com/v1.0/Users ?$select=displayName,mail,otherMails,signInNames

一些电子邮件出现在“邮件”中,另一些出现在“otherMails”数组中,并且无法选择“singInNames”:( 不显示任何信息,因此有些用户我无法获取有关电子邮件的信息.

我该如何解决这个问题?仅使用Azure AD Graph而不是Microsoft Graph API,因为在该 API 上返回了 signInNames?

没有任何方法可以将电子邮件始终存储在同一属性上吗?或者至少我可以访问 Microsoft Graph API 的一个?仅在声明转换中使用自定义策略?

azure azure-ad-graph-api azure-ad-b2c microsoft-graph-api

4
推荐指数
3
解决办法
2313
查看次数