我开发了一个实现OAuth2.0和OData的WebApi.
现在我正在建立一个客户端来测试到目前为止我已经实现了什么.我使用OData客户端代码生成器为OData生成了模板,但是如何在OData请求中引入de访问令牌?
知道如何扩展OData模板以引入OAuth2.0方案吗?或者更简单的方法是,如何在每个OData请求中引入OAuth访问令牌?
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) 我正在将磁盘中的队列迁移到内存中的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
我想知道发送电子邮件的用户的电子邮件地址。在我的应用程序中,人们可以使用社交帐户(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 的一个?仅在声明转换中使用自定义策略?