小编Ask*_*ein的帖子

Azure移动服务"push.apns.send"的成功回调

push.apns.send方法不会调用success回调.因此,如果成功执行,我们无法确定此操作何时完成.

这是我的代码(它是服务器端脚本的一部分,它在其中一个数据表的insert事件上运行):

  push.apns.send(message.deviceToken, {
    alert: message.alert,
    badge: message.badge,
    sound: message.sound,
    payload: {
      message: message.alert,
      appID: message.appID
    }
  }, {
    success: function(resp) {
      console.log(resp)
    },
    error: function(err) {
      console.error(err)
    }
  })
Run Code Online (Sandbox Code Playgroud)

error回调有效.例如,当我传递无效时deviceToken,我可以在日志中看到错误消息.但是在成功执行的情况下,日志中没有任何内容.它似乎根本没有调用success回调.

它没有在这个例子中显示,但在我的情况下,我需要success回调来改变记录的状态并保存它.

javascript azure push-notification apple-push-notifications azure-mobile-services

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

WPF ListBox将ItemsSource与MVVM-light绑定

XAML

<Window x:Class="Html5Mapper.Mapper.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wpt="http://schemas.xceed.com/wpf/xaml/toolkit"
    Title="HTML mapper" Height="300" Width="600" >
<Window.DataContext>
    <Binding Path="Main" Source="{StaticResource Locator}"/>
</Window.DataContext>

<ListBox Name="lbFiles" ItemsSource="{Binding Filescollection, Mode=OneWay}" Width="240" Height="220">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid Margin="0,2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="100" />
                    </Grid.ColumnDefinitions>
                    <Image Source="HTML.png" Height="40" Width="32" />
                    <TextBlock Grid.Column="1" Text="{Binding Name}" />
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
Run Code Online (Sandbox Code Playgroud)

MainViewModel.cs

public ObservableCollection<Files> Filescollection { get; set; }    
public MainViewModel()
{
    this.Filescollection = new ObservableCollection<Files>();
    SelectFilesAction();
}

private void SelectFilesAction()
{
   this.Filescollection.Add(new Files { Name = "index.html", Path = "C:\\Files"}); …
Run Code Online (Sandbox Code Playgroud)

c# wpf listbox mvvm mvvm-light

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

用WCF替换COM +?

有没有人用WCF取代COM +?

性能有所改善吗?

还有什么其他优点?

performance wcf com+

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

最佳实践:自定义asp.net core身份授权

我对 ASP.NET 身份服务器相当陌生。我知道如何自定义 IdentityUser 实体和脚手架/覆盖 Identity UI。鉴于这些情况,我正在寻找有关授权的高级操作方法和最佳实践:

应用程序内的组件需要考虑以下授权事项:

  • 角色
  • 地点
  • 分配
  • 实体(应用程序中的特定组件。如“管理新闻”)

来自网络表单类背景,我倾向于这样思考来定义角色:

public int assignId; //key
public int userId;
public int roleId;
public int? locationId;
public int? divisionId;
public int? entityId;
Run Code Online (Sandbox Code Playgroud)

真实世界场景

  • 具有“全局管理员”角色的用户“Adam”拥有所有权限。
  • 角色“Admin”和位置“Indy”的用户“Joe”拥有“Indy”位置中每个实体的权限。
  • 具有角色“Admin”、位置“Indy”和部门“IT”的用户“Blow”拥有“Indy”中每个“IT”实体的权利
  • 角色“管理员”、位置“芝加哥”、部门“安全”和实体“新闻”的用户“Joe”只能发布芝加哥安全部门的新闻。(除了上述有关乔和印地的规则之外)

那么,我的问题是?

使用 asp.net core 2.1 身份处理此类授权规则/策略的最佳方法是什么?添加“loc”/“indy”等声明?

我会设置自定义授权处理程序来检查声明吗?或者我会像在传统网络表单时代那样设置一个中间件表来处理关联吗?或者这种情况有最佳实践吗?

感谢您的帮助!!!!!!!

c# claims-based-identity asp.net-identity asp.net-core asp.net-core-2.0

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

如何在ASP.NET Core Web API中传递int数组

我有这个Web API方法:

[Route("api/[controller]")]
[ApiController]
public class SubjectsController : ControllerBase
{
    [HttpGet("children")]
    public IActionResult GetAllFromChildren([FromQuery]int[] childrenIds)
    {
        // omitted for brevity
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图通过传递查询字符串的Ajax来调用它,但似乎无法正常工作。我的Ajax呼叫看起来像这样:

$.ajax({
    url: "/api/subjects/children?childrenIds=1&childrenIds=2&childrenIds=3",
    method: "GET",
    contentType: "application/json; charset=utf-8"
})
Run Code Online (Sandbox Code Playgroud)

该方法被调用,但是不会填充int数组。我究竟做错了什么?

c# asp.net-core asp.net-core-webapi

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

Blazor:在没有会话/JWT 令牌时重定向到登录页面?

我正在尝试在 Blazor 中创建一个新应用程序并且正在处理身份验证。我正在使用存储在本地存储中的 JWT 令牌。当应用程序加载时,我需要检查存储中是否有令牌。如果是这样,请将其添加到所有 API 请求的 HTTP 标头中,如果没有,则在页面加载之前重定向到登录页面......我在哪里做?有多个页面需要进行此检查,因此需要在一个位置完成以覆盖所有页面。这应该在启动中完成吗?

搜索没有提供解决方案,因为我是 Blazor 的新手,找到正确的搜索词有点困难:)

c# authentication redirect login blazor

2
推荐指数
3
解决办法
6656
查看次数

使用 Spring Data R2DBC 查找/修改/保存或更新插入

我正在尝试了解反应式编程,特别是 Spring 和 Spring Data R2DBC。可以帮助我更好地理解它的一件事是对对象进行查找/修改/保存或“更新插入”。传统的交互可能如下所示:

Book save(Book book) {

   Book existing = repository.findByIsbn(book.getIsbn())

   if (existing != null) {
     return repository.save(found.copyMutableValuesFrom(book));
   }

   return repository.save(book);
}
Run Code Online (Sandbox Code Playgroud)

对于 Monos 来说这看起来怎么样?我知道如何进行直接查找或直接保存,但更复杂的查找/更新/保存或更新插入却让我困惑。

谢谢。

java project-reactor spring-data-r2dbc r2dbc

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

将XAML文件转换为BitmapImage

我想从XAML(文本)文件创建具有所需分辨率的BitmapImage.我怎样才能做到这一点?

谢谢.

c# xaml bitmapimage

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

具有CanExecute组合标准的ReactiveCommand

我刚开始使用ReactiveUI.我有以下课程:

public class MainViewModel : ReactiveObject, IRoutableViewModel 
{
   private string shareText;

   public ReactiveCollection<SharingAccountViewModel> SelectedAccounts { get; private set; }

   public string ShareText 
   { 
      get { return shareText; }
      set
      {
          this.RaiseAndSetIfChanged(ref shareText, value);
      }
   }

   public IReactiveCommand ShareCommand { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是在以下条件为真时允许命令执行:

  1. ShareText属性不为null或为空
  2. SelectedAccounts集合包含至少一个值

我尝试了以下但它不起作用,因为连接到命令的按钮永远不会启用:

ShareCommand = new ReactiveCommand(this.WhenAny(viewModel => viewModel.ShareText,
  viewModel => viewModel.SelectedAccounts,
  (x, y) => !String.IsNullOrEmpty(x.Value) && y.Value.Count > 0));
Run Code Online (Sandbox Code Playgroud)

如果我只检查ShareText属性,它可以正常工作:

  ShareCommand = new ReactiveCommand(this.WhenAny(viewModel => viewModel.ShareText,
            (x) => !String.IsNullOrEmpty(x.Value)));
Run Code Online (Sandbox Code Playgroud)

我查看了ReactiveUI问题的答案:将CanExecute与ReactiveCommand一起使用

基于此我尝试了以下内容: …

c# system.reactive reactiveui

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

Mapstruct:如何将自定义映射器与 @MappingTarget 一起使用

我正在使用 Mapstruct 并且需要使用 更新现有 bean @MappingTarget,但需要应用一些复杂的逻辑来在目标中设置正确的字段。

假设我有一个如下所示的目标 bean。用户有一个帐户列表,其中一个帐户被标记为最喜欢的。

UserDetails {
  String name;
  List<Account> accounts;
}

Account {
  String id;
  boolean favourite;
}
Run Code Online (Sandbox Code Playgroud)

DTO 类包含他们最喜欢的帐户的帐户 ID。

UserDetialsDTO {
  String name;
  String favouriteAccountId;
  List<String> accountIds;
}
Run Code Online (Sandbox Code Playgroud)

我需要使用一些复杂的逻辑来更新Account帐户列表中的正确内容。

UserDetails fromDto(UserDetialsDTO dto, @MappingTarget UserDetails userDetails);
Run Code Online (Sandbox Code Playgroud)

查找并更新正确的内容Account以使其成为最爱的逻辑如下:

userDetails.accounts
           .stream()
           .forEach(acct -> acct.setFavourite(dto.favouriteAccountId.equals(acct.id))) ;
Run Code Online (Sandbox Code Playgroud)

我如何告诉 Mapstruct 在更新 a 时使用此自定义逻辑@MapingTarget

java mapstruct

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