是否可以覆盖自定义OAuthAuthorizationServerProvider上特定故障单的默认AccessTokenExpireTimeSpan?所有其他票证的默认到期时间为15分钟.
public public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
...
var ticket = new AuthenticationTicket(identity, properties);
if (condition)
{
ticket.Properties.IssuedUtc = DateTime.UtcNow;
ticket.Properties.ExpiresUtc = DateTime.UtcNow.AddDays(14);
}
context.Validated(ticket);
}
Run Code Online (Sandbox Code Playgroud)
条件== true的生成标记具有默认的到期时间(15分钟).我不想更改context.Options.AccessTokenExpireTimeSpan,因为它影响所有令牌,这不是主意.
我正在使用Visual Studio 2015和Git.当我需要推送我的提交时,我使用fetch和rebase在推送之前合并新的提交.这是我的公司默认策略,在没有连接合并的情况下保持历史清晰.
是否可以将Visual Studio 2015团队资源管理器的同步功能配置为在拉时使用rebase?在Git配置中可以设置pull使用rebase而不是默认合并,但Visual Studio Sync似乎使用另一种配置.
我有一个项目使用最新版本的EF CF与PostgreSQL和Npgsql.
我的模型看起来像:
[Table("mytable")]
public class MyTable
{
[Column("id")]
public int Id { get; set; }
[Column("mycolumn")]
public string MyColumn { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
而数据库/表/列的小写名称如下:
CREATE TABLE mytable
{
id serial,
mycolumn character(50)
}
Run Code Online (Sandbox Code Playgroud)
Npgsql使用引号生成SQL命令,因此我必须使用由于PostgreSQL特性引起的数据注释,这很烦人.但是我想在数据库中不使用引号分隔名称.
有没有办法在生成命令时强制Npgsql不包含引号或在生成的SQL中强制使用小写表/列名称?
Microsoft 默认登录系统使用 ClaimTypes.Name 来存储电子邮件,使用 ClaimTypes.NameIdentifier 来存储用户的 UID(以及用于附加控制的 SecurityStamp)。其他一些示例使用 ClaimTypes.Name 来存储用户的全名。我知道我可以按照自己的意愿使用自定义登录系统,但由于我想避免重新发明轮子,所以我有一些问题如下:
CustomAuthorizeAttribute我的Web Api项目中定义了默认值.
config.Filters.Add(new CustomAuthorizeAttribute());
Run Code Online (Sandbox Code Playgroud)
但是我有一个特殊的控制器,我想使用一个SpecialAuthorizeAttribute.
[SpecialAuthorize]
public class MySpecialController : ApiController
Run Code Online (Sandbox Code Playgroud)
在Asp.Net vNext中,我们有一个新属性来覆盖默认过滤器,但是如何让它在Web Api 2中工作呢?
编辑1:
一种可能的(但不是理想的)解决方案是使CustomAuthorizeAttribute检查Controller或Action范围内是否有另一个AuthorizeAttribute.在我的情况下,我只有SpecialAuthorizeAttribute所以:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
{
if (actionContext.ControllerContext.ControllerDescriptor.GetCustomAttributes<SpecialAuthorizeAttribute>().Any() || actionContext.ActionDescriptor.GetCustomAttributes<SpecialAuthorizeAttribute>().Any())
{
return;
}
base.OnAuthorization(actionContext);
}
public override System.Threading.Tasks.Task OnAuthorizationAsync(System.Web.Http.Controllers.HttpActionContext actionContext, System.Threading.CancellationToken cancellationToken)
{
return base.OnAuthorizationAsync(actionContext, cancellationToken);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Gulp和Bower将JQuery引入我的项目中.但是,jquery.min.cs文件在预编译文件的末尾有一个SourceMappingURL,我想删除它.
目前我的Gulp只是将原始文件复制到目的地:
gulp.task('jquery', function () {
gulp.src(paths.jquerySrc)
.pipe(gulp.dest(paths.jqueryDest));
});
Run Code Online (Sandbox Code Playgroud)
我找到了很多方法来添加源映射但没有删除.我不想为此重新编译所有的jquery.
在这种关联中,我得到错误"无法确定类型'Foo'和'Bar'之间关联的主要结束.必须使用关系流畅API或数据注释显式配置此关联的主要结尾. "
public class Foo
{
public int Id { get; set; }
public int? MainBarId { get; set; }
public virtual Bar MainBar { get; set; }
[InverseProperty("Foo")]
public virtual ICollection<Bar> Bars { get; set; }
}
public class Bar
{
public int Id { get; set; }
public int FooId { get; set; }
public virtual Foo Foo { get; set; }
public int? OldFooId { get; set; }
public virtual Foo OldFoo { get; set; }
} …Run Code Online (Sandbox Code Playgroud) 我是从SVN来到Git.在SVN中,当两个开发人员同时更改同一个文件(来自同一个文件版本)时,最后一个提交者将在提交更改之前获得要解决的冲突标志.在Git中,常见的方法是最后一个提交者/推送器将解决冲突并生成第3个提交,然后推送原始提交和合并提交.
是否可以在进行本地提交之前合并服务器更改,然后以SVN样式进行单个提交(无冲突)?为了简化,假设两个开发人员都使用master的本地副本而不是其他分支.
我知道这是一个重复的话题,但大多数都不明白.
我有一个带条件操作的资源:
/foos/{id}/authorize
/foos/{id}/cancel
Run Code Online (Sandbox Code Playgroud)
这个想法是授权会将资源的状态从保存(默认)更改为授权(由第三方应用程序).授权可以从远程部分返回错误或者可以被授权.一旦授权,资源就无法再次被授权,因此这不是可以一次又一次调用的动作.
撤消授权资源时会发生取消.一旦取消,资源将永久保留.
考虑到此操作不安全并且不能被视为幂等因为第二次调用会返回"资源已被取消"这样的错误并且同时我不创建这种操作的RESTful世界中正确的动词是什么一个新资源,只是在已知资源中进行状态更改?
是否可以使用Npgsql和Entity Framework 6来查询PostgreSQL忽略重音?在Play SQL中,可以使用unaccent扩展,并且可以使用也基于unaccent的索引进行索引:
select * from users where unaccent(name) = unaccent('João')
Run Code Online (Sandbox Code Playgroud)
在以前使用MySql的项目中,我可以使用像utf8_swedish_ci这样的排序规则重音不敏感来解决这个问题,但据我所知,PostgreSQL缺乏这种解决方案.
在此示例代码中,代码以同步方式运行.为什么任务阻止DoIndependentWork()而不是仅阻止webTask.Result?我知道我可以使用Task.Run()和其他东西,但我正在尝试理解异步并等待更好一点.
static void Main(string[] args)
{
var webTask = AccessTheWebAsync();
DoIndependentWork();
Console.WriteLine("AccessTheWebAsync result: {0}", webTask.Result);
Console.ReadLine();
}
static async Task<int> AccessTheWebAsync()
{
HttpClient client = new HttpClient();
Thread.Sleep(5000);
Console.WriteLine("AccessTheWebAsync in Thread {0}", Thread.CurrentThread.ManagedThreadId);
var urlContents = await client.GetStringAsync("http://msdn.microsoft.com");
return urlContents.Length;
}
static void DoIndependentWork()
{
Console.WriteLine("DoIndependentWork in Thread {0}", Thread.CurrentThread.ManagedThreadId);
}
Run Code Online (Sandbox Code Playgroud) 我的角度应用程序不处理$ http调用中的错误.
我有一个$httpProvider我$q.reject(response)在errorResponse中返回的文档所需的位置.在控制台中角度刚刚放置angular.min.js:99 GET http://localhost:8080/my/api 500 (Internal Server Error).
码
console.log('before');
$http.get('/my/api', function(response){
console.log('ok');
console.log(response);
}, function(response){
console.log('not ok');
console.log(response)
});
console.log('after');
Run Code Online (Sandbox Code Playgroud)
我只是得到'之前','之后'和上面的信息.
同样在网络选项卡中,我从服务器获得预期响应,状态为500,正文中包含json内容.
除了没有返回$ q.reject()的$ httpProvider的errorResponse,可能是什么问题?
asynchronous promise angularjs angularjs-http angular-promise
如何DateTime使用对象图中的DataContractJsonSerializer所有DateTime属性将默认的JSON 序列化/反序列化更改为自定义格式?
Json.Net库处理这个,但我不能在这个项目中使用它.
我试过IDataContractSurrogate但我无法访问DateTimes的值 - >字符串转换.
模型和预期的JSON是:
[DataContract]
public class Client
{
[DataMember(Name = "id")]
public int Id {get; set; }
[DataMember(Name = "name")]
public string Name {get; set; }
[DataMember(Name = "contacts")]
public IList<Contact> Contacts {get; set; }
[DataMember(Name = "created")]
public DateTime Created {get; set; }
[DataMember(Name = "changed")]
public DateTime Changed {get; set; }
}
[DataContract]
public class Contact
{
[DataMember(Name = "name")]
public string Name {get; set; } …Run Code Online (Sandbox Code Playgroud)