小编Spi*_*Spi的帖子

微软Live的google/tokeninfo(或facebook/debug_token)相当于什么?

我工作的基础上使用OAuth实现http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/通过Taiseer Joudeh并希望添加Microsoft Live支持.

对于Google和Facebook,VerifyExternalAccessToken负责检查所获取令牌的有效性,如https://developers.google.com/accounts/docs/OAuth2UserAgent#validatetoken所述

我可能错过了一个简单的信息,但我找不到任何Live等效的验证...

access-token oauth-2.0 microsoft-account

7
推荐指数
0
解决办法
269
查看次数

async/await与手工制作的延续:是巧妙地使用ExecuteSynchronously吗?

我最近写了以下代码:

    Task<T> ExecAsync<T>( string connectionString, SqlCommand cmd, Func<SqlCommand, T> resultBuilder, CancellationToken cancellationToken = default(CancellationToken) )
    {
        var tcs = new TaskCompletionSource<T>();

        SqlConnectionProvider p;
        try
        {
            p = GetProvider( connectionString );
            Task<IDisposable> openTask = p.AcquireConnectionAsync( cmd, cancellationToken );
            openTask
                .ContinueWith( open =>
                {
                    if( open.IsFaulted ) tcs.SetException( open.Exception.InnerExceptions );
                    else if( open.IsCanceled ) tcs.SetCanceled();
                    else
                    {
                        var execTask = cmd.ExecuteNonQueryAsync( cancellationToken );
                        execTask.ContinueWith( exec =>
                        {
                            if( exec.IsFaulted ) tcs.SetException( exec.Exception.InnerExceptions );
                            else if( exec.IsCanceled ) tcs.SetCanceled();
                            else
                            {
                                try
                                { …
Run Code Online (Sandbox Code Playgroud)

c# continuations asynchronous async-await

6
推荐指数
1
解决办法
995
查看次数

寻找可能的MethodAttributes.SpecialName的确切列表

我知道ctor,cctor物业/索引前缀:get_,set_,事件管理前缀:add_,remove_.我看过raise_一次或两次前缀(不记得在哪里).

是否存在.Net级别的确定列表(ECMA规范)?如果是的话在哪里?

它是一个"开放列表",以便任何(新)语言可以为其(未来)需求定义它们吗?

.net cil cls-compliant

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

将 ValueTask&lt;T&gt; 转换为非泛型 ValueTask

这里提出的问题与这里的问题相同,旨在为其创建一个明确的解决方案。最准确的答案是 Stephen Toub 本人在本期中提出的,正是关于这个问题的。“推荐代码”如下:

public static ValueTask AsValueTask<T>(this ValueTask<T> valueTask)
{
    if (valueTask.IsCompletedSuccessfully)
    {
        valueTask.GetResult();
        return default;
    }

    return new ValueTask(valueTask.AsTask());
}
Run Code Online (Sandbox Code Playgroud)

这个答案不是最新的 - ValueTask 不公开 GetResult() (只有 Result 属性) - 问题是:

  • 我们是否需要将Result从ValueTask中“拉”出来(以“释放”这个ValueTask下可能操作的IValueTaskSource)?
  • 如果是:
    • .GetAwaiter()上面缺少的调用吗?
    • 或者对物业的假电话是否保证有效var fake = valueTask.Result;?总是?(我担心死代码消除。)
  • 如果不是,像下面这样的直接实现是否足够(并且是最佳的)?
public static ValueTask AsNonGenericValueTask<T>( in this ValueTask<T> valueTask )
{
    return valueTask.IsCompletedSuccessfully ? default : new ValueTask( valueTask.AsTask() );
}
Run Code Online (Sandbox Code Playgroud)

.net c# async-await valuetask

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