小编Tox*_*ble的帖子

DateTimeOffset错误:本地dateTime的UTC偏移量与偏移量参数不匹配

我正在尝试创建一个将时间从一个时区转换为另一个时区的小方法.我认为这很简单,但是当我部署它时,我得到了这个错误The UTC Offset of the local dateTime parameter does not match the offset argument.我的猜测是因为服务器与用户不在同一时区,因为这将在世界各地使用.

public object ConvertDate(DateTime inputTime, string fromOffset, string toZone)
{
    var fromTimeOffset = new TimeSpan(0, - int.Parse(fromOffset), 0);
    var to = TimeZoneInfo.FindSystemTimeZoneById(toZone);
    var offset = new DateTimeOffset(inputTime, fromTimeOffset);
    var destination = TimeZoneInfo.ConvertTime(offset, to); 
    return destination.DateTime;
}
Run Code Online (Sandbox Code Playgroud)

数字在哪里fromOffset,从用户时区转换为时间跨度,toZone是我们要转换为的区域的名称.此行发生错误var offset = new DateTimeOffset(inputTime, fromTimeOffset);

关于如何使这个工作的任何想法?

c# datetime

20
推荐指数
2
解决办法
9375
查看次数

无法将值NULL插入"MaintenanceId"列,表'<tableName>'; 列不允许空值.INSERT未通过EF 6.1

所以我正在尝试在azure上添加一个简单的数据库,但由于某种原因,数据库没有为该条目生成我的PK.
下面是用于创建数据库并执行输入的所有代码.
这是在控制台应用程序上的EF 6.1上

上下文

public BlizzardDbContext() : base("AzureSqlDb")
{
}

public DbSet<Maintenance> Maintenances { get; set; }
Run Code Online (Sandbox Code Playgroud)

模型

public class Maintenance
{
    public Maintenance()
    {}

    public Maintenance(DateTime start, DateTime end, string info)
    {
        Start = start;
        End = end;
        Info = info;
    }

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int MaintenanceId { get; set; }

    public DateTime? Start { get; set; }

    public DateTime? End { get; set; }

    public string Info { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

测试保存更改失败

var context = new …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework azure

7
推荐指数
1
解决办法
2230
查看次数

使用auth0-lock的Auth0仅在使用调试器时进行身份验证,以便慢慢逐步执行代码

正如标题所说,我正在尝试使用auth0-lockAngular 2 SPA和ASP.NET Core API.我无法验证自己的测试.我也webpack用来打包应用程序并将所有其他引用删除到只有裸auth应用程序.

我按照他们的教程:https://auth0.com/docs/quickstart/spa/angular2

问题是,当我点击构造函数时,如果我慢慢地通过调试器逐步执行库代码,它将只进行身份验证.

constructor() {
      debugger
    // Add callback for lock `authenticated` event
      this.lock.on("authenticated", (authResult) => {
        debugger
      localStorage.setItem('id_token', authResult.idToken);
    });
  }
Run Code Online (Sandbox Code Playgroud)

如果我删除调试器并让它以正常速度运行,它将永远不会进行身份验证; 该auth0-lock上来了,我可以登录,然后它会重新加载,但我不会被记录也不会出现在本地存储任何东西.

更新: 所以我认为我找到了这个问题的原因.使用Angular 2的最新组件路由器; 如果我评论路由,auth立即工作,但把它放回去我必须使用调试器来减慢它.否则,它不会auth.有没有什么办法解决这一问题?

我在进行身份验证时遇到了另一个问题,查询我的API我得到了回复,401 Unauthorized即使Auth0我说我已获得授权.我可以看到我的令牌localStorage以及来自另一个角度2教程的authHttp模块的使用.angular2-jwtAuth0

我的后端(asp.net Core)有一个方法[Authorise].我按照这里的设置https://auth0.com/docs/quickstart/backend/aspnet-core-webapi 了解如何开始,除了我遇到上述问题.

更新:事实证明这个问题是由于我在教程中跳过关于更改SignatureAlgorithm使用的部分,RS256我已经改变了它以使用RS256方法并且在这方面工作得很好但现在仍然存在问题当我在角度2上启用路由时不会认证这里是该项目的Github Repo:https://github.com/Toxicable/Templates

authentication auth0 asp.net-core angular

7
推荐指数
1
解决办法
549
查看次数

如何获取Azure存储队列大小/位置

所以我将一个项目从我的ASP.NET Web API发送到Azure存储队列,我想向用户提供关于他们的项目在队列中的位置的一些反馈,以及能够更新他们的位置项目,如果他们回来或类似的东西.

并不是说它与这里的问题有很大关系,但这是我用来将项目放在队列中的方法

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigHelper.GetAzureStorage());
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

CloudQueue queue = queueClient.GetQueueReference("my-queue");
await queue.CreateIfNotExistsAsync();

var messageJson = JsonConvert.SerializeObject(item);
CloudQueueMessage cloudQueueMessage = new CloudQueueMessage(messageJson);

await queue.AddMessageAsync(cloudQueueMessage);
Run Code Online (Sandbox Code Playgroud)

所以我一直在探索CloudQueueClient,CloudQueue但我能找到的CloudQueue.ApproximateMessageCount总是返回null.

我还尝试了一些谷歌搜索如何总是出现入门指南,特别注意我如何获得项目的大小然后在队列中的位置,所以它甚至可能吗?

c# azure azure-storage azure-storage-queues

3
推荐指数
1
解决办法
1147
查看次数

设置后无法启用产品模式

当我尝试在Stack Blitz中启用产品模式时,有时会告诉我

设置后无法启用产品模式

https://stackblitz.com/edit/angular-gitter-fv1bhs

angular angular5

2
推荐指数
1
解决办法
654
查看次数

无法使用ADAL for ASP.NET MVC上的Office 365 REST API对用户进行静默身份验证

所以我正在尝试为我们的办公室身份验证实现持久性令牌,这样用户每次进入新会话时都不必登录办公室.我目前用于验证用户的代码如下.

string authority = "https://login.microsoftonline.com/common";
var tokenCache = new ADALTokenCache(User.Identity.GetUserId());
AuthenticationContext authContext = new AuthenticationContext(authority, tokenCache );
var token = authContext.AcquireTokenSilentAsync(scopes, clientId, new UserIdentifier(userId, UserIdentifierType.RequiredDisplayableId));
Run Code Online (Sandbox Code Playgroud)

但到目前为止我尝试过的所有内容都给出了以下错误 在此输入图像描述

例外情况是: "Failed to acquire token silently. Call method AcquireToken"

首先用于获取令牌的方法如下

string authority = "https://login.microsoftonline.com/common";
var fileCache = new ADALTokenCache(User.Identity.GetUserId());
AuthenticationContext authContext = new AuthenticationContext(authority, fileCache);
var authResult = await authContext.AcquireTokenByAuthorizationCodeAsync(
                authCode, redirectUri, credential, scopes);
Run Code Online (Sandbox Code Playgroud)

我使用的令牌缓存是一个db实现,我从一个我再也找不到的教程中做出来,如果我看到db我可以看到新的令牌在AcquireTokenByAuthorizationCodeAsync被调用时被插入到db中.

更新:
这是我在调用时来自authResult的结果AcquireTokenByAuthorizationCodeAsync 在此输入图像描述

我已将Virbonet的答案标记为解决方案,但我没有修复它,但他确实向我解释了我哪里出错了

c# asp.net office365 adal office365api

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

如何在SQL Server 2014中启用/安装全文搜索

这个问题可能有一个非常简单的答案,但我不知道我将如何在SQL Server 2014中启用全文搜索.

我在网上搜索过去几个小时,一些关于SQL Server 2012的帖子说它在安装过程中的功能,但我去了那里,我没有选择启用它.

自从我运行以来,它绝对没有启用或安装

select SERVERPROPERTY('IsFullTextInstall')
Run Code Online (Sandbox Code Playgroud)

得到了一个0.

为了进一步扩展,我创建了一个全文目录,但是如果我右键单击一个表,则全文索引选项将显示为灰色.

此外,如果我尝试运行创建全文索引命令,我会收到错误

未安装全文搜索,或无法加载全文组件.

full-text-search sql-server-2014

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