小编Mat*_*gen的帖子

如何从HttpClientHandler.CookieContainer获取cookie

这是代码:

public static async Task<string> DownloadPageWithCookiesAsync(string url)
{
    HttpClientHandler handler = new HttpClientHandler();
    handler.UseDefaultCredentials = true;
    handler.AllowAutoRedirect = true;
    handler.UseCookies = true;
    handler.CookieContainer = new CookieContainer();
    HttpClient client = new HttpClient(handler);
    HttpResponseMessage response = await client.GetAsync(url);
    response.EnsureSuccessStatusCode();

    string responseBody = response.Content.ReadAsString();
    return responseBody;
}
Run Code Online (Sandbox Code Playgroud)

在之后client.GetAsync(url);的运行中,handler.CookieContainer包含7块饼干.我怎样才能访问它们?

.net c# windows-runtime

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

如何使用MethodCallExpression/lambda从树中的ConditionalExpression.IfThen返回?

我试图让一个表达式树有条件地评估一个字符串.

这是我到目前为止的代码:

IQueryable<Category> myCategories = DataUtil.Categories.AsQueryable();

ParameterExpression categoryParameterExpression = Expression.Parameter(typeof (Category), "category");
MemberExpression categoryNameMemberExpression = Expression.PropertyOrField(categoryParameterExpression, "CategoryName");
MemberExpression categoryNameLengthExpression = Expression.Property(categoryNameMemberExpression, typeof (string).GetProperty("Length"));
ConstantExpression constantLengthExpression = Expression.Constant(10, typeof (int));
BinaryExpression greaterThanLengthExpression = Expression.GreaterThan(categoryNameLengthExpression, constantLengthExpression);
var getNameInCapsMethod = typeof (Category).GetMethod("GetNameInCaps", BindingFlags.Instance | BindingFlags.Public);
MethodCallExpression getNameInCapsExpression = Expression.Call(categoryParameterExpression, getNameInCapsMethod, categoryNameMemberExpression);

ConditionalExpression ifGreaterThanLengthGetUpperNameExpression = Expression.IfThen(greaterThanLengthExpression, getNameInCapsExpression); 

// I need something between the lambda and the ConditionalExpression to ensure that the void type is not returned?

var ifGreaterThanLengthGetUpperNameLambdaExpression = Expression.Lambda<Func<Category, string>>(ifGreaterThanLengthGetUpperNameExpression, new ParameterExpression[] { …
Run Code Online (Sandbox Code Playgroud)

c# linq expression-trees

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

打开Internet P2P套接字连接

我知道这是一个讨论得很多的话题,但我希望有一些创新的方法,或者一些我没有遇到过的方法.本质上,我需要一种在两台客户机上运行的套接字之间建立对等连接的方法.当然,主要问题是防火墙(应该是可行的)以及端口转发的需要.

现在,我熟悉UPNP等等,我知道你可以(有时候,无论如何)设置路由器进行端口转发,但这对我来说似乎是一个混乱的实现,更不用说不可靠,因为用户可以切换路由器甚至有一个没有UPNP或禁用它的路由器.

我是开放的,虽然有点不情愿,但是如果需要的话,可以添加一个中间服务器以方便连接,但除了简单地从一个流复制到另一个流(数字相当于将两个电话连接在一起,一个人的扬声器面向另一个的麦克风,反之亦然),但是,正如这个类比希望暗示的那样,这样做似乎并不是最好的方法.也许有一种方法可以采用两个独立连接的不同插座并将它们相互连接起来?

我见过很多很多的问题,说明或多或少正是我想要的,我认识的诱惑,以纪念本作的一些人的副本,但主要是我想知道像应用程序是如何的TeamViewer或Skype的(虽然我觉得Skype可能已经切换到通过服务器进行所有通信,如果我没记错的话,但至少MSN Messenger曾经是P2P)这样做.

所以,问题是:如何设置套接字,无论是否通过使用中间服务器,将从一台客户机连接到另一台客户机,而不必使用UPNP或类似的不可靠的端口转发技术?

还有一些我在路上做的笔记:

  • 至少TeamViewer会为自己创建一些防火墙例外.我这样做没有问题.但如果它采取持有两部手机的方式,为什么需要这些呢?默认情况下(通常)批准出站请求.
  • 我听说HTML5与WebSockets谈论允许浏览器到浏览器聊天,但是它是如何工作的?我已经看到了一些这方面的帖子,并被介绍给WebRTC,但是可以在浏览器之外使用类似的技术吗?我认为是这样,因为一般来说,网络对这种行为的限制更多.

只是为了记录,我确实完全控制了客户端和任何必要的服务器,所以我可以做任何事情.我非常感谢不必在发起客户端做某事,因为我很乐意看到Internet Explorer在那个地方发挥作用.基本上我正在寻找一个P2P代理,所以我当然可以通过编写自己的套接字在它们之间进行交谈并显示它来做一些更高级的东西(它不需要工作得很好,就足够了,好吧,工作),但如果IE可以通过那时直接连接那将是惊人的.

让我知道,我知道这也比我们在这里看到的要广泛得多,它可能更适合程序员,但我尽力保持它尽可能具体.

.net sockets p2p

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

项目在本地工作但在Azure上崩溃

我刚刚将我的项目发布到Azure,突然间我收到以下错误:

无法加载文件或程序集'System.Web.Cors,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

自上次发布以来,我没有更新/安装任何nuget包.此外,我刚刚检查了.dkk文件,并将copy local设置为true.

这可能是什么问题?我没有改变任何事情.

在sitenode我的项目在当地工作正常.

asp.net azure asp.net-web-api

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

使用OWIN Active Directory承载令牌启用多个租户

我最近开始使用Azure Active Directory来针对我基于AngularJS构建的网站对用户进行身份验证。

通过在GitHub上使用博客和示例代码,我已经结合ADAL.js和Katana的Bearer Token AD集成与单租户一起使用

但是,我现在在支持多个租户方面遇到一些问题。

我已经建立了一个页面,该页面显示ADAL看到他们的用户(通过根作用域的userInfo),并调用由OWIN接管并序列化的我的服务器context.Authentication.User

在客户端,一切似乎都正常运行。我可以与任何租户登录,它为我提供了我期望的对象(具有isAuthenticated: trueusername填充的以及各种属性profile描述用户,登录名和租户的)。

这是通过在客户端忽略tenant参数来完成的adalAuthenticationServiceProvider.init如文档中所述,的。

但是,在服务器端,该UseWindowsAzureActiveDirectoryBearerAuthentication方法不喜欢没有任何价值Tenant(因为它会引发异常)。我为此尝试了一些值,包括最初注册了我的应用程序的租户,以及我最喜欢的“普通”租户,但是无论我输入的内容是什么(除非这是我要登录的租户) ,如果我的ADAL与该租户一起设置),似乎就可以跳过。

值得一提的是,实际的API调用在[Authorize]过滤器上失败并返回401,这表明我的OWIN拦截器不是问题。

我如何知道UseWindowsAzureActiveDirectoryBearerAuthentication要支持多租户身份验证?

active-directory owin adal

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

TABLOCKX与SERIALIZABLE

我有一系列需要以原子方式运行的T-SQL查询.(见下文)...目的是允许1个用户一次检索一个唯一的行,并防止其他用户同时检索同一行.

到目前为止,我已经看到了两种可能的解 1)表提示(HOLDLOCK,TABLOCKX)和2)事务隔离级别(SERIALIZABLE)...

我的问题:

  1. 哪个选项更好?

  2. 还有其他/更好的解决方案吗?

DECLARE @recordId int;

SELECT @recordId = MIN([id])
FROM Exceptions
WHERE [status] = 'READY';

UPDATE Exceptions
SET [status] = 'PROCESSING',
    [username] = @Username
WHERE [id] = @recordId;

SELECT *
FROM Exceptions
WHERE [id] = @recordId;
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

为什么 ReadLine () 方法不会为用户输入暂停?

我开始学习C#,但遇到了一个问题。该ReadLine()方法不会因用户输入而暂停。我刚开始使用 C#,它适用于其他人的程序,所以我不知道为什么。我在 Mac 上使用 Xamarin。

下面是一个做示例代码工作:

using System;

namespace LearningC
{
    public class LearningSharp
    {
        public static void Main (String[] args)
        {
            Console.WriteLine (Console.ReadLine ());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# user-input console.readline

4
推荐指数
2
解决办法
3154
查看次数

如何在opencv或emgu cv中检测三角形边缘?

在此输入图像描述

我正在使用Emgu CV,我想在图片中检测到两个锐利,首先我将图像转换为灰色,然后调用cvCanny,然后调用FindContours,但只找到一个轮廓,找不到三角形.

码:

 public static void Do(Bitmap bitmap, IImageProcessingLog log)
    {
        Image<Bgr, Byte> img = new Image<Bgr, byte>(bitmap);
        Image<Gray, Byte> gray = img.Convert<Gray, Byte>();
        using (Image<Gray, Byte> canny = new Image<Gray, byte>(gray.Size))
        using (MemStorage stor = new MemStorage())
        {
            CvInvoke.cvCanny(gray, canny, 10, 5, 3);
            log.AddImage("canny",canny.ToBitmap());

            Contour<Point> contours = canny.FindContours(
             Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE,
             Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_TREE,
             stor);

            for (int i=0; contours != null; contours = contours.HNext)
            {
                i++;
                MCvBox2D box = contours.GetMinAreaRect();

                Image<Bgr, Byte> tmpImg = img.Copy();
                tmpImg.Draw(box, new Bgr(Color.Red), 2);
                log.AddMessage("contours" + (i) +",angle:"+box.angle.ToString() …
Run Code Online (Sandbox Code Playgroud)

opencv emgucv

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

如何导出.xlsx文件C#ASP.NET MVC剃须刀

我想将数据导出到.xlsx文件,但我似乎只能导出到.xls.

导出.xlsx文件最简单的方法是什么?

这是我用来导出到.xls文件的代码:

GridView gv = new GridView();
gv.DataSource = listCatalogue.ToList();
gv.DataBind();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename=Catalogue.xls");
Response.ContentType = "application/ms-excel";
Response.Charset = "";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc excel razor

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

StreamReader不从csv文件中读取日文字符

使用带有日文字符双引号字段的流阅读器读取csv文件.它不读日文字符并将其视为unicode字符.我尝试了不同的编码类型,但它不适合我.请与我分享一些想法或解决此问题的其他解决方案.或者有更好的方法来做到这一点.

public DataTable ReadDataFromCSV(string path, char delim)
{
    string fulltext;
    string[] arrColumnNames;
    string[] arrColumnValues;
    string[] arrRows;
    int i, j, n;

    System.Data.DataTable dt = new System.Data.DataTable();
    DataRow row;
    if (delim.ToString().Length < 1)
    {
        delim = ',';
    }
    try
    {
        //' check that the file exists before opening it
        if (File.Exists(path))
        {
            using (TextReader sr = new StreamReader(path,Encoding.UTF8))
            {
            fulltext = sr.ReadToEnd();
            arrRows = fulltext.Split('\n');
            arrColumnNames = arrRows[0].Replace('"', ' ').Trim().Split(delim);
            //'add columns to a datatable
            for (n = 0; n < arrColumnNames.Length …
Run Code Online (Sandbox Code Playgroud)

c# fastercsv winforms c#-3.0 c#-4.0

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