小编Ign*_*cio的帖子

跨域身份验证ASP.net MVC

我有两个不同的Web应用程序用ASP.net MVC构建.这两个应用程序可能无法在同一服务器上运行,也不能在同一域中运行.

我想如果用户登录其中一个,则应自动登录另一个.同样适用于注销.

你认为哪种解决方案最好?你知道一些示例代码吗?

谢谢!

---编辑更多信息---

用例场景:

用户在选项卡上打开了Web应用程序A,并且在应用程序的某个位置存在将用户重定向到Web应用程序B的链接.如果他登录A,我想向他显示整页,如果不是,请将他重定向到登录表单.

为什么我需要这样做:

应用程序AB已经构建.显然,访问B的唯一方法是单击位于A中的链接,只有在您之前已登录时才会显示该链接.问题是,如果您知道B的某个页面的URL (很长且很复杂,但仍然),您可以在浏览器上写入并访问B,这意味着存在安全问题.

c# asp.net authentication cross-domain asp.net-mvc-4

11
推荐指数
4
解决办法
4973
查看次数

强制子类初始化变量

我有一个必须初始化Foo的字段的类_customObject.我还有一个Bar继承自的类Foo:

public abstract class Foo
{
    protected CustomObject _customObject;

    public Foo()
    {
        // Do stuff
    }
    // Other methods that use _customObject
}

public class Bar : Foo
{
    // Constructor and other methods
}
Run Code Online (Sandbox Code Playgroud)

我无法初始化该对象_customObject,Foo因为每个继承的子节点都包含一个不同的子节点CustomObject,因此必须在每个子类中初始化它:

public class Bar : Foo
{
    public Bar()
    {
        _customObject = new CustomObjectInherited1();
    }
}


public class Baz : Foo
{
    public Baz()
    {
        _customObject = new CustomObjectInherited2();
    }
} …
Run Code Online (Sandbox Code Playgroud)

.net c# inheritance

7
推荐指数
2
解决办法
2227
查看次数

c#中的双倍乘法

我有一个简单的乘法问题,我无法理解......我正在使用.Net Framework 4,并在x86中构建.我正在执行以下代码:

double x = 348333.673899683;
double y = 4521014.98461396;
double aux = x * y;
Run Code Online (Sandbox Code Playgroud)

aux的预期值是1574821759346,09949827752137468(我用一个简单的计算器完成了它).但是,我在aux中获得的值是1574821822464.看到这不是精度错误,即使整数部分已被更改.

如果我在乘法中放置一个断点并将鼠标悬停在de*运算符上,我看到x*y = 1574821759346.0994即可.如果我将鼠标悬停在aux变量上,我会看到aux = 1574821822464

为了澄清最后一段,下面可以看到两张图:

在此输入图像描述

在此输入图像描述

首先,我认为可能是因为x86编译,但是阅读下一篇文章,我放弃了这个选项:

32位和64位OS中的双字节大小

我无法理解这里发生了什么.任何帮助将不胜感激.

---编辑更多信息---

我正在使用VS2015.我添加了三行来调试它:

log.Info(x);
log.Info(y);
log.Info(aux);
Run Code Online (Sandbox Code Playgroud)

要显示日志我正在使用库log4net.输出是:

23322 [8] INFO Art.Model.Scenarios (null) - 348333,673899683
24745 [8] INFO Art.Model.Scenarios (null) - 4521014,98461396
26274 [8] INFO Art.Model.Scenarios (null) - 1574821822464
Run Code Online (Sandbox Code Playgroud)

因此,它不是debuger中的错误.如果我创建一个全新的项目和解决方案,它可以正常工作,但我无法理解为什么不在这个解决方案中工作.

---第二次编辑---

感谢我的评论,我尝试了一些新的东西:

double x = 348333.673899683;
double y = 4521014.98461396;
double aux …
Run Code Online (Sandbox Code Playgroud)

.net c# double multiplication

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

使用 keras 保存的 ML.NET 加载模型

我有一个用 Keras 用 Python 实现的神经网络。一旦我训练了它,我就导出了模型,我得到了两个文件:model.js 和 model.h5。现在我想在 .NET 项目中实时分类,我想使用经过训练的神经网络。

在 ML.NET 中有没有办法将模型和用 python 导出的训练权重加载到模型对象中?

我在文档 [1] 中看到可以加载以前保存的模型,但显然存储在 .zip 中,我找不到格式(也许制作一个脚本,从 python 中获取模型并“翻译”它到 ML.NET 模型。

显然 hdf5 格式是标准 [2],有没有办法用 ML.NET 加载它?

[1] https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/sumption-model-ml-net

[2] https://support.hdfgroup.org/HDF5/doc1.6/UG/10_Datasets.html

.net python machine-learning keras ml.net

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

阻止List.Add()方法

我有一个包含私人列表的类.我创建了一个getter和一个向列表中添加元素的方法:

public class Test{

    private List<T> myList;
    public List<T> MyList
    {
        get { return myList; }
    }

    public Test()
    {
         myList = new List<T>();
    }

    public void AddElements(T element)
    {
         // Do dome stuff, subscribe to an event of T
         myList.Add(element);
    }
}
Run Code Online (Sandbox Code Playgroud)

因为每次将一个元素添加到我的列表中时我想做更多的事情,我不希望在代码的某些部分有人直接添加元素:

Test test = new Test();

// Wrong
test.MyList.Add(element);

// Right
test.AddElements(element);
Run Code Online (Sandbox Code Playgroud)

我曾想过创建一个实现IList接口的新类并重写Add()方法,但我想知道是否有一个更简单/更优雅的方法来阻止这个Add()方法.

.net c#

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

C# 中 OnnxRuntime 张量的高效位图

我正在使用 Microsoft OnnxRuntime 来检测和分类图像中的对象,我想将其应用于实时视频。为此,我必须将每一帧转换为 OnnxRuntime 张量。现在我已经实现了一个大约需要 300 毫秒的方法:

public Tensor<float> ConvertImageToFloatTensor(Bitmap image)
    {
        // Create the Tensor with the appropiate dimensions  for the NN
        Tensor<float> data = new DenseTensor<float>(new[] { 1, image.Width, image.Height, 3 });

        // Iterate over the bitmap width and height and copy each pixel
        for (int x = 0; x < image.Width; x++)
        {
            for (int y = 0; y < image.Height; y++)
            {
                Color color = image.GetPixel(x, y);

                data[0, y, x, 0] = color.R / (float)255.0; …
Run Code Online (Sandbox Code Playgroud)

c# image tensor onnxruntime microsoft.ml

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