小编ale*_*x.b的帖子

更新System.IdentityModel.Tokens.Jwt导致IdentityServer3客户端发生重大更改

希望很容易解决.

微软的System.IdentityModels.Tokens.Jwt软件包昨天在NuGet上更新4.0.2.206211351v5.0.不幸的是,这导致了一些"标准" IdentityServer3代码的突破性变化.即从他们的代码示例中提取,所以我想很多开发人员可能会在未来几天看到这个问题.

原始代码

使用v4.0.2.xxxxxx版本的软件包.我有

using System.IdentityModel.Tokens;
Run Code Online (Sandbox Code Playgroud)

在命名空间中.

然后在Configuration方法中开始如下:

public void Configuration(IAppBuilder app)
    {
        AntiForgeryConfig.UniqueClaimTypeIdentifier = "sub";

        JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = "Cookies"
        });

        app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
        { ... };
Run Code Online (Sandbox Code Playgroud)

更新后

更新说明行后:

JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
Run Code Online (Sandbox Code Playgroud)

造成问题.

第一件事就是Class显然已经进入了System.IdentityModel.Tokens.Jwt命名空间,这个解决方案并不是那么糟糕.

但是,我现在收到Object reference required for a non-static field错误JwtSecurityTokenHandler.InboundClaimTypeMap.

我是否在这里遗漏了一些东西,另一个需要的库或者在Startup.Configuration()被调用之前发生了什么需要深入研究?

c# security identityserver3

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

F#的编译器用哪种语言编写?

F#的编译器用哪种语言编写?

我听说F#的编译器是用F#编写的
(F#编译器的每个下一个版本都是用它以前的版本编写的)
但是:
1.如果它是真的,不能谷歌.
2.如果是的话,用哪种语言编写F#编译器的第一个版本?

f#

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

如何使附加到VS解决方案的.nuget\NuGet.Config文件不被忽略?

我创建了一个Visual Studio的新的解决方案,使NuGet包恢复并得到了在soluition根.nuget含有使包恢复工作所需的下列文件夹:NuGet.exe,NuGet.config,NuGet.targets.

但我无法使nuget(如Nuget Visual Studio加载项\.nuget\NuGet.exe以及其他.\nuget\NuGet.config文件)从文件中读取设置- 仍然会从默认设置中读取设置%appdata%\NuGet\NuGet.config.

我试过了什么
我试图查看NuGet.config指定路径的位置并且没有找到类似的东西,并且nuget.exe install在构建期间运行的命令没有任何参数说"拿这个nuget.config文件".

此外,我已删除\.nuget\NuGet.config,一切正常 - 在Visual Studio构建和CI期间还原包.

题.
我的印象\.nuget\NuGet.config根本没用过.

所以基本上问题是:如何使.nuget\NuGet.Config文件不被忽略?
我做错了什么,怎么写呢?

谢谢,并有一个很好的%time_of_day%:)

免责声明
我上面提到的所有内容都不是问题/问题 - 当前的nuget行为对我来说是完全可以接受的 - 我只是因为我同时感到好奇和困惑

nuget

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

ASP.NET MVC:在其中生成带有自定义html的动作链接


如何在里面生成自定义html的动作链接.
如下:
<a href="http://blah-blah/.....">
<span class="icon"/> New customer
</a>

asp.net-mvc actionlink asp.net-mvc-2

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

dotNET 堆栈跟踪中的“第 0 行”

我收到了一个错误报告,其中堆栈跟踪的顶部类似于:

System.NullReferenceException: <...> at MyApplication.MyType.SomeMethod(String arg) in MyType.cs:line 0
Run Code Online (Sandbox Code Playgroud)

关键是,行号是0。什么会导致这种堆栈跟踪行为?

.net c# stack-trace

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

专用Intranet级Nuget订阅源:Windows集成安全性自定义

我正在考虑设置Intranet级Nuget feed(我公司的团队应该使用它).
我简要介绍了Pro Nuget书中的一些教程+相应的章节,但到目前为止我仍然有一些问题:

  1. 如何使Windows集成安全性能够顺利地在私有源上运行,并自定义私有Nuget源的访问权限(例如,授予每个人获取包但仅授予几个域用户/组的权限);
  2. 如何让开发人员无需将包推送到私有Feed api key
  3. 如何避免开发人员犯这样的愚蠢错误,如推送包到公共提要?是否足以不将api key公共源配置为默认值?

有没有人遇到过这些案件之一?任何提示都表示赞赏.

谢谢!

windows-authentication nuget nuget-server

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

Nuget引用以奇怪的方式表现

我有一个包含2个项目的C#解决方案:

  1. 一个包含几个类的类库:其中一个类使用ADAL.NET执行身份验证,因此我引用了"Microsoft.IdentityModel.Clients.ActiveDirectory"包(v3.10)
  2. 我还有一个用作测试平台的ConsoleApplication.从这里开始,我调用类库来快速测试原型代码然后丢弃它.除了使用Console.ReadLine()和Console.WriteLine()之外,这个控制台应用程序本身只调用了1)中提到的类库.

现在,奇怪的是,如果我在控制台应用程序中没有包含对"Microsoft.IdentityModel.Clients.ActiveDirectory"的nuget引用,则会抛出错误:

[FileLoadException:无法加载文件或程序集'Microsoft.IdentityModel.Clients.ActiveDirectory,Version = 3.10.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)]

但是,当我简单地添加该引用时,一切正常.

我很困惑为什么会这样?类库已经有了对包的引用,并且类库是唯一使用该包的类,所以为什么我还要添加对控制台应用程序的引用?

有趣的是,我随后包含了一个WebApp并将所有内容发布到Azure订阅中.Web应用程序也会出现同样的问题.如果我在Web App中添加对"Microsoft.IdentityModel.Clients.ActiveDirectory"nuget包的引用,一切正常,但是如果我将其删除,则会抛出上述异常.请注意,WebApp不直接使用该包,它只是调用类库(已经有引用并正在使用它).

有人可以对这里发生的事情有所了解吗?

c# reference nuget

7
推荐指数
0
解决办法
793
查看次数

WIX:将文件复制到另一个分区中的自定义目录

我需要将应用程序的文件安装到通常的位置,例如C:\Program Files\MyApp
,还需要将其中几个文件复制到另一个分区的自定义文件夹中
(比方说D:\CustomFolder,允许对其进行硬编码)。

安装应该是静默的 - 没有 GUI 或向导。而且所有内容都应该位于一个 *.msi 文件中。

我可以通过 做到这一点CustomActions,但优雅的声明方式更好。

以前有人尝试过这个吗?
谢谢。

更新:忘记提及,允许应该位于单独分区上的文件位于C:\Program Files\MyApp

windows-installer wix

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

为什么WatiN无法加载Bing.com?

我在IE11上使用WatiN 2.1.0.

如果我使用以下代码,WatiN sucessfuly导航到页面,但它似乎没有加载我要求的页面.相反,它认为它正在关注:空白.

var Browser = new IE();
Browser.GoTo("www.bing.com");
Browser.Url; // = about:blank
Run Code Online (Sandbox Code Playgroud)

当我尝试在Intranet中加载任何页面时,我得到相同的行为.

我最初认为IE11是问题所在.但是,如果我用google.com或yahoo.com或stackoverflow.com取代bing.com,它就像一个魅力.有关为什么某些页面可以加载而不加载其他页面的任

c# watin

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

为IFormatProvider提供编译时常量

我正在尝试使用以下签名创建字符串扩展方法:

public static DateTime? TryParseExact(this string src, string format, IFormatProvider provider = DateTimeFormatInfo.CurrentInfo, DateTimeStyles style = DateTimeStyles.None)
{
}
Run Code Online (Sandbox Code Playgroud)

我收到编译器错误:

'provider'的默认参数值必须是编译时常量

在谷歌找不到任何东西,我唯一的工作就是这样做:

public static DateTime? TryParseExact(this string src, string format, IFormatProvider provider = null, DateTimeStyles style = DateTimeStyles.None)
{
    if (provider == null)
        provider = DateTimeFormatInfo.CurrentInfo;
}
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何在签名中设置IFormatProvider的默认值?它甚至可能吗?IFormatProvider是一个接口,所以我假设这就是问题所在.

.net c#

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

尝试使用 .NET WebClient 下载响应时出现“无法解析远程名称”异常

我正在尝试从某个网站下载响应,以确认该网站已启动并测量响应时间(在网站内容中提供)

该页面的网址如下https://www.blabla.com.au/ServiceAvailability

我可以在浏览器中输入页面网址,我可以看到页面已启动并提供了响应时间。我还可以单击该链接,该页面也将加载到 Visual Studio 浏览器中。

但是当我尝试从我的应用程序调用相同的网址时,我得到以下信息System.Net.WebException

{“无法解析远程名称:“www.blabla.com.au”}

该代码在我的本地 PC 上运行,我也从本地 PC 访问该网站,并且可以从浏览器和 VS 中打开该页面

我的代码如下所示:

string myUrl ="https://www.blabla.com.au/ServiceAvailability";

using (WebClient webClient = new WebClient())
{ 
    result = webClient.DownloadString(myUrl);
}
Run Code Online (Sandbox Code Playgroud)

哪里result是一个string

我已尝试以下方法来解决该问题:

  1. 以管理员身份运行 Visual Studio
  2. 使用我的用户名/密码作为凭据而不是默认值
  3. 在url前面加上@
  4. 尝试按照以下代码块使用 WebRequest 和 HttpWebRequest:

    WebRequest req = WebRequest.Create(myUrl);
    res = req.GetResponse();
    
    HttpWebRequest req = WebRequest.Create(myUrl) as HttpWebRequest;
    HttpWebResponse res = req.GetResponse() as HttpWebResponse;
    
    Run Code Online (Sandbox Code Playgroud)

.net c# asp.net webrequest

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

将图像添加到网格 C#

我的问题是我设置到我的网格的图像没有出现,唯一出现的是黑色背景,所以我知道网格正在工作。我是菜鸟,我很困惑。谢谢您的帮助 :)

代码:

    public partial class MainWindow : Window
    {
        static String ImgNameMole = "C:/Users/MonAmi/Desktop/mole2.png";

        public MainWindow()
        {
            InitializeComponent();
            GridMain();
        }

        private void GridMain()
        {
            Grid grid_Main = new Grid();
            MainWindow1.Content = grid_Main;
            grid_Main.Height = 350;
            grid_Main.Width = 525;

            grid_Main.Background = Brushes.GreenYellow;

            CreateImage();

        }

        private Image CreateImage()
        {
            Image Mole = new Image();
            Mole.Width = 25;
            Mole.Height = 25;
            ImageSource MoleImage = new BitmapImage(new Uri(ImgNameMole));
            Mole.Source = MoleImage;
            return Mole;
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# wpf grid image

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