小编Mar*_*nce的帖子

在ASP.NET Core中,如何检查请求是否是本地的?

在常规ASP.NET中,您可以在视图中执行此操作以确定当前请求是否来自localhost:

HttpContext.Current.Request.IsLocal

但我无法在ASP.NET 6/Core /中找到类似的内容.

c# asp.net-core

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

Knockout嵌套视图模型

我坚持一定是一个简单的解决方案.我正在使用带有嵌套视图模型的knockout.js,除了我的删除功能无法正常工作外,一切似乎都很好.它似乎是正确绑定,但是当我单击删除时它不会被触发.

为什么嵌套视图模型?长话故事,但基本上很多东西都需要在一个页面上!

所以这是代码:

HTML

<section class="mini-form-container">
    <form data-bind="submit: repeatGuest.addDate">
        <input type="date" data-bind="value: repeatGuest.previousStay"/>
        <button type="submit" class="button-secondary ">Add date</button>
    </form>
    <div data-bind="foreach: repeatGuest.dates, visible: repeatGuest.dates().length > 0">
        <div>
            <input data-bind="value: date" disabled="disabled"  />
            <a data-bind="click: $parent.removeDate">Remove</a>
        </div>
    </div>
</section>

<section>
    <div data-bind="text: ko.toJSON($data)"></div>
</section>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

function RepeatGuest() {
    /// <summary>Child View Model</summary>
    this.dates = ko.observableArray();
    this.previousStay = ko.observable();
}

RepeatGuest.prototype.addDate = function () {
        var self = this.repeatGuest;
        if (self.previousStay()) {
            self.dates.push({
                date: self.previousStay()
            });
        }
    };

RepeatGuest.prototype.removeDate = function (date) …
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

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

Asp.Net核心中间件服务依赖于当前用户

我想要更改请求范围的服务或在自定义中间件层中设置一个.

具体来说,我希望能够在以下方面做一些类似于以下设计的例子Startup.cs:

public void ConfigureServices(IServiceCollection service)
{
    service.AddScoped<IMyUserDependentService>((provider) => {
        return new MyService());
    });
}

public void Configure(...) {

    //other config removed

    app.Use(async (context, next) => {

        var myService = context.ApplicationServices.GetService<IMyUserDependentService>();


        myService.SetUser(context.User.Identity.Name);//Name is Fred

        next.Invoke();
    });
}
Run Code Online (Sandbox Code Playgroud)

然后在控制器中执行以下操作:

public class HomeController: Controller
{
    public HomeController(IMyUserDependentService myService)
    {
        //myService.UserName should equal Fred
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,这不起作用.myService.UserName在控制器中不是Fred,它是null.我认为IOC容器正在控制器中创建一个新实例,而不是使用中间件中的一个.

如果我将服务范围更改为Transient,则会记住Fred,但这无济于事,因为该服务取决于当前用户是谁.

回顾一下,我需要的是创建/或编辑需要当前用户(或其他当前请求变量)的服务,但我无法解决这个问题.

提前致谢!

asp.net-core

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

Team Foundation Service 是否有内置的 Wiki?

Team Foundation Service 是否像 GitHub 一样有内置的 Wiki?

如果没有,是否有一个可以轻松集成的?

azure-devops

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

实施战略模式.我每次都要"新手"吗?

我正在尝试实施战略模式.这是我实施的一部分:

public List<string> GetOrderedEmployeeNames(IOrderByStrategy strategy)
{
   return GetEmployeeFullNames().OrderBy(strategy.Order);
}
Run Code Online (Sandbox Code Playgroud)

现在每次我调用这个函数我都要写:

var employees = GetOrderedEmployeeNames(new OrderByFamilyName());
Run Code Online (Sandbox Code Playgroud)

每次正确的方式或者我是否错误地实施了这个策略?

c# strategy-pattern

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

什么会阻止类可序列化?

什么会阻止类可序列化?

我知道默认情况下类不可序列化,因为启用序列化会引入开销.但某些类的特性是否会阻止它们被序列化?

如果它是相关的,我特别考虑XML序列化.

c# serialization xml-serialization

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

Azure Media Services上的媒体资产的容器名称

在为Windows Azure Media Services创建资产时,如何设置容器的名称?

像这样调用我的CloudMediaContext来创建新资产会在blob存储中创建一个名为"asset- [newGuid]"的新容器,例如"asset-f230411a-22a0-4813-9187-4b815dbfdf12".

var assetName = "foobar";    
var asset = _mediaContext.Assets.Create(assetName, assetCreationOptions);
Run Code Online (Sandbox Code Playgroud)

上面的电话背景信息Nick Drouin(在AMS的MS工作)

"在幕后,上面的调用将:创建一个IAsset并将其添加到资产集合中;创建一个IFileInfo以放入资产;创建具有写入权限的AccessPolicy,在Azure存储中使用资源容器请求SAS定位器AccessPolicy,将文件上传到您的存储帐户,最后撤销SAS网址."

问题 如何控制容器的名称?

azure azure-storage azure-media-services

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