小编Mat*_*int的帖子

为什么ClaimsPrincipalPermissionAttribute是密封的,还有替代方案吗?

我正在我的.net 4.5应用程序中实现基于声明的安全性.很多篮球跳过,但它基本上工作.

我不喜欢的唯一部分是我无法创建自己的属性.ClaimsPrincipalPermissionAttribute已被密封.为什么?

我总是在我的应用程序中标记,例如:

[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "Foo", Operation = "Bar")]
Run Code Online (Sandbox Code Playgroud)

因为我希望我的资源和操作字符串不会拼写错误并且易于重构,所以我创建了类,所以我可以这样做:

[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = Resources.Foo, Operation = Operations.Foo.Bar)]
Run Code Online (Sandbox Code Playgroud)

(请注意,由于不同的资源可能具有不同的操作,因此操作本身由资源子类化.)

这一切都很好,花花公子,但每次输入或复制/粘贴都是一个很大的问题.我宁愿做类似的事情:

[DemandPermission(Resources.Foo, Operations.Foo.Bar)]
Run Code Online (Sandbox Code Playgroud)

我可以创建这个属性,但我需要从ClaimsPrincipalPermissionAttribute继承,我不能,因为它是密封的.:(

还有其他方法可以解决这个问题吗?也许我不需要继承,但我能以某种方式注册我自己的属性类型,所以它可以在所有相同的地方工作吗?

c# custom-attributes claims-based-identity wif .net-4.5

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

Reduce 不能在分组中包含 Average() 方法

刚刚升级到 v2,这不再有效;如果我尝试使用 Count(),我会收到类似的错误

public class Deck_Ratings : AbstractIndexCreationTask<DeckRating, Deck_Ratings.ReduceResult>
{
    public class ReduceResult
    {
        public string DeckId { get; set; }
        public int Rating { get; set; }
    }

    public Deck_Ratings()
    {
        Map = deckRatings => deckRatings.Select(deckRating => new 
                             { 
                                 deckRating.DeckId, 
                                 deckRating.Rating 
                             });
        Reduce = reduceResults => reduceResults
                                      .GroupBy(reduceResult => reduceResult.DeckId)
                                      .Select(grouping => new 
                                              {
                                                  DeckId = grouping.Key, 
                                                  Rating = grouping.Average(reduceResult => reduceResult.Rating)
                                               });
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# ravendb

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

如何让WebAPI HelpPage包使用HotTowel模板?

我正在试用John Papa 的新Hot Towel模板.它真的很光滑,但是我在使用它与我习惯的Web API合作时遇到了一些困难.

我能够解决路由问题,但我仍然无法使Microsoft.AspNet.WebApi.HelpPage包工作.

这就是我所做的:

  • 安装热毛巾VSIX.
  • 新的ASP.NET MVC4项目 - 热毛巾SPA模板
  • 构建,运行 - 工作.
  • 右键单击Controllers文件夹,添加名为的控制器TestController.
  • 选择"Empty API Controller"模板.
  • 在TestController中编写以下操作:

    public IEnumerable<string> GetTestData()
    {
         return new[] { "A", "B", "C" };
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 构建,运行.

  • 尝试网址/api/test获取错误404The resource cannot be found.
  • 试试网址/api/test/gettestdata.作品.

然后我注意到它BreezeWebApiConfig.cs已经改变了默认的api路由,并且{action}是必需的,所以我添加了默认的api路由:

GlobalConfiguration.Configuration.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
    );
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试URL时/api/test,它可以工作.

现在我想使用帮助包.

  • 添加Microsoft.AspNet.WebApi.HelpPagenuget包.
  • 添加 …

c# asp.net-mvc asp.net-web-api breeze hottowel

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

如何通过城市和国家获得时区?

在我的django项目中,我有一个小型酒店数据库,其中包含字段citycountry.

我可以timezone通过传递citycountry作为参数得到那个地方.

我想这样做的原因是因为我有一些命令可以根据check-in酒店的时间差异 和现在的时间来进行.由于datetime.now()给出了天真的日期时间,我不能用它来与酒店时间进行比较.

我如何期待解决方案.谢谢 :)

python django timezone pytz

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

如何在ravendb工作室查询?

我从代码中查询RavenDB没有问题,但有时直接快速查找RavenDB会很好.不幸的是,尽管提示它使用Lucene语法,但我无法弄明白.

例如,我有一个RegionLocation文件:

{
  "RegionId": 804291854,
  "Name": "Miami",
  "Description": null,
  "DbRowStatus": 0,
  "CreatedBy": "Zorro",
  "UpdatedBy": null,
  "DeletedBy": null,
  "CreatedOn": "2013-06-05T18:31:37.4332753",
}
Run Code Online (Sandbox Code Playgroud)

我没有任何运气来查询它.RegionLocation.Name: M*没有结果.知道我做错了什么吗?

ravendb ravendb-studio

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

将时间从UTC转换为指定的TimeZone时出现.NET PCL异常

我正在使用C#在Xamarin Studio中开发一个项目.它是一个.net PCL项目,我的个人资料是78.我的问题是,我无法将DateTime从UTC转换为指定的时区.我使用下面的代码将DateTime从UTC转换为指定的本地TimeZone.

   DateTime dateTime = (TimeZoneInfo.ConvertTime (DateTime.SpecifyKind (DateTime.UtcNow, DateTimeKind.Utc), profile.TimeZone));
Run Code Online (Sandbox Code Playgroud)

我正在低于例外

dateTime参数的Kind属性是DateTimeKind.Utc,但sourceTimeZone参数不等于TimeZoneInfo.Utc.

在PCL TimeZoneInfo.ConvertTime中没有用于指定的参数TimeZoneInfo sourceTimeZone.它只有2个带有以下参数的重载.

ConvertTime(DateTime,TimeZoneInfo)和ConvertTime(DateTimeOffset,TimeZoneInfo)

TimeZoneInfo仅用于指定目标TimeZoneInfo.

它也没有TimeZoneInfo.ConvertTimeFromUtc, TimeZoneInfo.ConvertTimeToUtc方法.

请有人帮我解决这个问题.

.net timezone datetime portable-class-library

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

使用CSVHelper强制ISO 8601

我正在尝试将以下格式的ISO8601格式化日期yyyy-MM-ddTHH:mm:ss.fffffff zzz用于.csv使用CsvHelper.

public System.DateTimeOffset ChangeDT { get; set; }
Map(m => m.ChangeDT).ConvertUsing<string>(row => row.GetField<DateTimeOffset>("ChangeDT").ToString("yyyy-MM-ddTHH:mm:ss.fffffff zzz"));
Run Code Online (Sandbox Code Playgroud)

虽然上面的代码产生:

6/10/2014 12:00:00 AM -05:00
Run Code Online (Sandbox Code Playgroud)

我正在寻找输出的是:

2014-06-10 12:00:00.1234567 -05:00
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c# datetime iso8601 datetimeoffset csvhelper

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

为什么DateTime.FromBinary在不同的机器上返回不同的DateTime值

我发现我正在处理的应用程序有一个错误,日期时间错误地存储在我们的数据库中.我将其跟踪到DateTime.FromBinary如何操作之间的一些不一致.

我使用此代码作为测试用例:

var dateTime = DateTime.FromBinary(-8587689004854775808);
string toString = dateTime.ToString();
Run Code Online (Sandbox Code Playgroud)

在我的Windows PC(.NET 4.5,控制台应用程序)以及我的iOS应用程序(Xamarin.iOS 8.10.0.267)上,我得到以下结果:

5/27/2015 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)

但是,在我们的天蓝色服务器上,它将在同一天发布,但是早上6点.

作为一个快速测试,我解雇了DotNetFiddle:

https://dotnetfiddle.net/ziBwfA

果然输出是:

5/27/2015 6:00:00 AM
Run Code Online (Sandbox Code Playgroud)

请注意,我还输出了"Kind"属性,它又以'Local'的形式返回,因此我认为这不是本地与utc的问题.

有关为什么会出现这种情况的任何想法?

c# datetime

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

Java 时区数据库与 IANA 数据

IANA 数据库和非洲/卡萨布兰卡时区的 Java tzdb.dat 2019c 数据库之间存在夏令时差异,这让我很困惑。可能还有其他的,但我找到了这个。据我所知,IANA 时区数据库清楚地表明摩洛哥(非洲/卡萨布兰卡)支持 DST 不幸的是,2019c 版本中的 Java 时区数据库 tzdb.dat 不同意。这已经并将给我带来无限的悲伤。我在这里错过了什么,或者其他人看到过这种东西

非洲/卡萨布兰卡的 IANA 表 2019c

注:下表部分显示正常时间为 UTC+1,夏令时为 UTC 斜线 (/) 分隔标准和夏令时缩写

区域名称 STDOFF 规则格式 [直到]

非洲区/卡萨布兰卡 -0:30:20 - LMT 1913 年 10 月 26 日

         0:00   Morocco +00/+01 1984 Mar 16
         1:00   -   +01 1986
         0:00   Morocco +00/+01 2018 Oct 28  3:00    
         1:00   Morocco +01/+00
Run Code Online (Sandbox Code Playgroud)

从 2018 年 10 月 28 日到现在,标准的偏移量是 +1,夏令时的偏移量是 +0(斜线 (/) 分隔标准和日光缩写。) STDOFF 1:00 所以添加到 UT 以获得标准时间的时间量,没有夏令时的任何调整都对应于 UTC +1,即当前的摩洛哥时间。因此,我们采用 UTC 区域非洲/卡萨布兰卡,并根据斋月添加偏移量 +01/+00。

考试 …

java timezone dst

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

如何在 dot net core 中获取另一个时区的本地时间

我正在解决一个问题,我需要获取另一个时区的当前日期和时间。我不知道我的代码将在哪个时区运行,并且它需要在 Windows 和 Linux 机器上运行。

我还没有找到任何方法可以做到这一点。有任何想法吗?

(PS:我特别需要找到瑞典的时间,包括代码可能运行的任意时区的夏令时)。

c# timezone datetimeoffset .net-core

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