小编hyp*_*erN的帖子

ASP.net Identity 2.0退出另一个用户

我正在使用asp.net MVC和ASP.net Identity 2.0.

在我的网站上管理员可以选择禁止用户,我希望当用户被禁止他自动从网站注销时.

我知道我可以通过电话退出当前用户

AuthenticationManager.SignOut();
Run Code Online (Sandbox Code Playgroud)

但是可以注销另一个用户吗?或者可能缩短他的会话时间 还是什么?

我知道我可以对控制器进行全局过滤,禁止禁止用户访问但是过滤器会针对每个用户运行,所以我对这个解决方案并不满意.

c# asp.net-mvc asp.net-identity

23
推荐指数
2
解决办法
7917
查看次数

Azure CDN + Asp.net MVC Cloud Service压缩捆绑包无法正常工作

我正在使用Azure CDN,它指向我的Azure云服务.我已经为我的JS和CSS文件启用了捆绑,而在BundleConfig中我已经设置了bundles.UseCdn = true.

一切都运行正常,除了通过CDN返回的JS和CSS包没有压缩.如果我没有使用CDN,则压缩包返回(我可以看到Content-Encoding是gzip).

我已经在我的CDN上启用了压缩,如下图所示:

在此输入图像描述

在我的ASP.net MVC web.config压缩也启用,它看起来像这样:

 <urlCompression doStaticCompression="true" doDynamicCompression="true" />
  <httpCompression>
    <dynamicTypes>
    <clear/>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/x-javascript" enabled="true" />
      <add mimeType="text/javascript" enabled="true" />
      <add mimeType="text/css" enabled="true" />
      <add mimeType="application/json" enabled="true" />

      <!-- HERE -->
      <add mimeType="image/svg+xml" enabled="true" />
      <add mimeType="image/png" enabled="true" />
      <add mimeType="image/jpg" enabled="true" />
      <add mimeType="image/jpeg" enabled="true" />
      <add mimeType="application/font-woff2" enabled="true" />
      <add mimeType="application/x-font-ttf" enabled="true" />
      <add mimeType="application/octet-stream" enabled="true" />
      <!-- HERE -->

      <add mimeType="*/*" enabled="false" /> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc azure azure-cdn

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

Angularjs在不同选项卡中的控制器之间的通信

我有控制器A,它将一些数据发送到共享服务和控制器B,它应该读取该数据.问题是控制器B与控制器A位于不同的页面(在同一网站上),即我确实是smth.在控制器A上,单击按钮(将数据发送到服务)并打开另一个页面,其中控制器B应从服务中读取数据.但没有任何反应,所以我的问题是不同页面上的控制器能以这种方式通信吗?

这是我试图这样做但没有运气的方式:

服务:

publicApp.angularModule.service('controllerCommunicationService', function ($rootScope) {
    var communicationService = {};
    communicationService.data = null;

    communicationService.setDataForBroadcast = function(data) {
        this.data = data;
        this.broadcastData();
    };

    communicationService.broadcastData = function() {
        $rootScope.$broadcast('handleBroadcast');
    };

    return communicationService;
});
Run Code Online (Sandbox Code Playgroud)

控制器A的相关部分:

publicApp.angularModule.controller('PublicRoutinesCtrl', function ($scope, $rootScope, routinesService, controllerCommunicationService, bootstrapCarouselService) {


    $scope.goToNextScreen = function() {
        var currentIndex = bootstrapCarouselService.getcurrentSlideIndex();
        controllerCommunicationService.setDataForBroadcast($scope.items[currentIndex].Routine.RoutineId);



    };
Run Code Online (Sandbox Code Playgroud)

控制器B的相关部分:

 $rootScope.$on('handleBroadcast', function () {
        console.log("TEST");
        $http.post("/EditWorkout/PostRoutineId", { routineId: controllerCommunicationService.data })
             .success(function() {
                 console.log("success");
             })
            .error(function (responseData) {
            console.log("Error !" + responseData);
        });
    });
Run Code Online (Sandbox Code Playgroud)

甚至console.log("TEST");没有解雇.

javascript angularjs

9
推荐指数
2
解决办法
9822
查看次数

Visual Studio团队资源管理器+ VS在线同步错误

我正在使用VS Online + Git进行版本控制,一切都运行良好很长时间,直到昨天,我重新安装了Windows并安装了VS 2015.我已经打开VS并选择了从源代码控制中打开选项并连接到我的VS在线帐户,但当我尝试将项目克隆到我的PC时,我收到错误:

Error encountered while fetching: Invalid redirect to a non-git endpoint
Run Code Online (Sandbox Code Playgroud)

我尝试了很少的东西(大多是随机的,因为我找不到任何有关这个错误的东西)并没有任何帮助.

然后我打开了Git bash并手动将项目克隆到我的电脑上,并且没有任何问题.之后,我在VS中打开了项目并进行了一些更改,在本地进行了剂量更改而没有任何问题,但是当我尝试同步我的项目时,我又遇到了同样的错误.再次,从Git bash将代码推送到服务器没有任何问题.

此外,我试图通过VS +团队资源管理器从另一个VS在线帐户克隆项目,这很好.

请你帮助我好吗 ?

git version-control team-explorer visual-studio-2015 azure-devops

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

选择的Angular指令不会更新

我已经按照这个伟大的教程(链接)选择和Angular(代码几乎相同)

这是我的指示:

app.angularModule.directive('chosen', function() {
    var linker = function (scope, element, attrs) {
        var list = attrs['chosen'];

        scope.$watch(list, function () {
            element.trigger('chosen:updated');
        });

        element.chosen({ width: '350px'});
    };

    return {
        restrict: 'A',
        link: linker
    };
});
Run Code Online (Sandbox Code Playgroud)

这是html:

<select data-placeholder="Choose a Category"  multiple class="col-lg-8 chosen-select" chosen="items"
                            ng-options="item._backingStore.Name for item in items"   ng-model="selectedCategories" >
                    </select>
Run Code Online (Sandbox Code Playgroud)

我想要的是,当用户点击编辑按钮时,弹出模态窗口,并在模态窗口中选择在单击编辑按钮之前选择的类别.

这是控制器的一部分:

  $scope.$watch(function() { return adminCrudService.getCategoriesForUpdate(); }, function() {
                $scope.action = "edit";
                $scope.categoriesForUpdate = adminCrudService.getCategoriesForUpdate();
                if ($scope.categoriesForUpdate.length > null) {
                    $scope.selectedCategories = _.filter($scope.items, function (item) { …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs jquery-chosen angularjs-directive

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

ASP.net MVC中的Azure Redis StackExchange.Redis ConnectionMultiplexer

我已经读过,为了连接到Azure Redis缓存,最好遵循以下做法:

private static ConnectionMultiplexer Connection { get { return LazyConnection.Value; } }

    private static readonly Lazy<ConnectionMultiplexer> LazyConnection =
        new Lazy<ConnectionMultiplexer>(
            () =>
            {
                return
                    ConnectionMultiplexer.Connect(connStinrg);
            });
Run Code Online (Sandbox Code Playgroud)

根据Azure Redis文档:

Azure Redis缓存的连接由ConnectionMultiplexer类管理.此类旨在在整个客户端应用程序中共享和重用,并且不需要基于每个操作创建.

那么在我的ASP.net MVC应用程序中共享ConnectionMultiplexer的最佳实践是什么?它应该在Global.asax中调用,还是应该每个Controller初始化一次,或者smth.别的?

我也有服务,负责与应用程序通信,所以如果我想在服务内部与Redis通信,我应该将ControlMultiplexer的实例发送到控制器的服务,还是应该在我的所有服务中初始化它,或者?

你可以看到我在这里有点迷失,所以请帮忙!

c# asp.net-mvc redis stackexchange.redis azure-redis-cache

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

从ASP.net项目调用静态异步方法

我想知道这个场景是否是线程安全的,是否存在我目前没有看到的问题:

  1. 从ASP.net控制器我从非静态类调用非静态方法(此类在另一个项目中,类被注入到控制器中).

  2. 这个方法(非静态的)做了一些工作,并调用一些其他静态方法传递userId

  3. 最后,静态方法做了一些工作(需要userId)

我相信这种方法是线程安全的,并且如果两个用户同时调用此方法,那么一切都将正确完成(让我们说同样的纳秒).我是正确还是完全错误?如果我错了,在ASP.net项目中使用静态方法的正确方法是什么?

编辑

这是代码:)

这是来自控制器的调用:

await _workoutService.DeleteWorkoutByIdAsync(AzureRedisFeedsConnectionMultiplexer.GetRedisDatabase(),AzureRedisLeaderBoardConnectionMultiplexer.GetRedisDatabase(), workout.Id, userId);
Run Code Online (Sandbox Code Playgroud)

这里DeleteWorkoutByIdAsync的样子如下:

public async Task<bool> DeleteWorkoutByIdAsync(IDatabase redisDb,IDatabase redisLeaderBoardDb, Guid id, string userId)
    {

        using (var databaseContext = new DatabaseContext())
        {
            var workout = await databaseContext.Trenings.FindAsync(id);

            if (workout == null)
            {
                return false;
            }

            databaseContext.Trenings.Remove(workout);

            await databaseContext.SaveChangesAsync();

            await RedisFeedService.StaticDeleteFeedItemFromFeedsAsync(redisDb,redisLeaderBoardDb, userId, workout.TreningId.ToString());
        }

        return true;
    }
Run Code Online (Sandbox Code Playgroud)

您可以注意到DeleteWorkoutByIdAsync调用静态方法StaticDeleteFeedItemFromFeedsAsync,如下所示:

public static async Task StaticDeleteFeedItemFromFeedsAsync(IDatabase redisDb,IDatabase redisLeaderBoardDd, string userId, string workoutId)
 {


        var deleteTasks = new List<Task>();
        var feedAllRedisVals = await redisDb.ListRangeAsync("FeedAllWorkouts:" + userId); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

Azure恢复已删除的数据库

我不小心删除了链接到数据库的Azure网站,现在我的数据库已经不见了.

有什么办法可以从数据库中恢复数据吗?

azure azure-sql-database

6
推荐指数
2
解决办法
3644
查看次数

Cordova iOS视频标签本地文件源

我在基于Cordova的应用程序上在iOS上播放本地视频时遇到问题.一开始我想强调,只有当我使用WKWebView时才会出现这个问题,如果使用UiWebView,视频播放就可以了.这是我的情景:

- 用户进入屏幕传递视频网址

-Via FileTransfer我将其下载到手机并将其存储在所需位置

- 使用JS视频加载<video>标记和播放.

基本上我正在回答这个问题所描述的一切.UiWebView的问题是,如果相对路径设置为src,由于某种原因无法加载视频(无论我使用哪种组合),所以这个解决方案对我很有用,因为它基于这行代码:

entry.toURL()
Run Code Online (Sandbox Code Playgroud)

这将返回下载视频的完整路径,这很好,至少对于UiWebView.

WkWebView的问题是entry.toURL()返回smth.像这样:

file:///var/mobile/Containers/Data/Application/3A43AFB5-BEF6-4A0C-BBDB-FC7D2D98BEE9/Documents/videos/Dips.mp4
Run Code Online (Sandbox Code Playgroud)

并且WKWebView不适用于file://协议.此外,WKWebView都不适用于相对路径:(

任何人都可以帮我解决这个问题吗?

video html5-video ios cordova phonegap-build

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

如果定义了其他属性,则 Typescript 需要该属性 (requiredIf)

是否可以在 TS 中定义interfaceor a type,这将确保如果A定义了 prop,则 propB也必须是(如果A未定义/设置,则B也不能是)。例如我有某事。喜欢:

export interface IExample {
  a: string;
  b: () => void;
  c: boolean;
}
Run Code Online (Sandbox Code Playgroud)

然后,如果我有一些实现的对象,IExample我希望 TS 允许我只拥有 propc或两者ab并且c如果我只有aandcband 则抛出编译错误c

更好的例子是在 React 组件中使用它,就像在这个 SO 问题中一样,或者更好的是我想实现相同的功能,例如:this ReactPropType library

我试图通过歧视性工会来做到这一点,但我无法让它发挥作用,而且当我有几个像这样的道具(即requriedIf)时,它会变得太复杂,但也许我只是做错了。这是我的代码示例:

export interface INetworkRequestStatusMessageDefaultProps {
  testID?: string;
  networkRequestStatus: NetworkRequestStatus;
}
export interface INetworkRequestStatusMessageLoadingProps …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

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