我正在我的.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继承,我不能,因为它是密封的.:(
还有其他方法可以解决这个问题吗?也许我不需要继承,但我能以某种方式注册我自己的属性类型,所以它可以在所有相同的地方工作吗?
刚刚升级到 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) 我正在试用John Papa 的新Hot Towel模板.它真的很光滑,但是我在使用它与我习惯的Web API合作时遇到了一些困难.
我能够解决路由问题,但我仍然无法使Microsoft.AspNet.WebApi.HelpPage包工作.
这就是我所做的:
Controllers文件夹,添加名为的控制器TestController.在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包.在我的django项目中,我有一个小型酒店数据库,其中包含字段city和 country.
我可以timezone通过传递city和country作为参数得到那个地方.
我想这样做的原因是因为我有一些命令可以根据check-in酒店的时间差异 和现在的时间来进行.由于datetime.now()给出了天真的日期时间,我不能用它来与酒店时间进行比较.
我如何期待解决方案.谢谢 :)
我从代码中查询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*没有结果.知道我做错了什么吗?
我正在使用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方法.
请有人帮我解决这个问题.
我正在尝试将以下格式的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)
我究竟做错了什么?
我发现我正在处理的应用程序有一个错误,日期时间错误地存储在我们的数据库中.我将其跟踪到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的问题.
有关为什么会出现这种情况的任何想法?
IANA 数据库和非洲/卡萨布兰卡时区的 Java tzdb.dat 2019c 数据库之间存在夏令时差异,这让我很困惑。可能还有其他的,但我找到了这个。据我所知,IANA 时区数据库清楚地表明摩洛哥(非洲/卡萨布兰卡)支持 DST 不幸的是,2019c 版本中的 Java 时区数据库 tzdb.dat 不同意。这已经并将给我带来无限的悲伤。我在这里错过了什么,或者其他人看到过这种东西
非洲/卡萨布兰卡的 IANA 表 2019c
注:下表部分显示正常时间为 UTC+1,夏令时为 UTC 斜线 (/) 分隔标准和夏令时缩写
非洲区/卡萨布兰卡 -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。
考试 …
我正在解决一个问题,我需要获取另一个时区的当前日期和时间。我不知道我的代码将在哪个时区运行,并且它需要在 Windows 和 Linux 机器上运行。
我还没有找到任何方法可以做到这一点。有任何想法吗?
(PS:我特别需要找到瑞典的时间,包括代码可能运行的任意时区的夏令时)。