Tag: asp.net core

如何在ASP.NET Core中将角色添加到Windows身份validation

我在visual studio 2015中使用windows身份validation创建了一个asp.net核心项目。 我无法弄清楚如何向Identity添加角色。 我有一个带有Windows帐户用户名的表。 当用户打开网站时,用户被添加到身份(我假设发生了什么,因为我可以通过User.Identity.Name显示用户名),我想从另一个表中提取角色并将其分配给用户, 这可能吗? 或者有更好的方法吗? (为什么?,怎么样?) 我找不到任何与Windows身份validation相关的示例,但我已经阅读了文档并阅读了本指南 。 我仍然被困住了。

使用.NET Core的Firebase身份validation(JWT)

我正在开发一个处理Firebase身份validation的简单API – 稍后将用于Android客户端。 所以在Firebase控制台中,我启用了Facebook和Google登录方法,并创建了一个示例html页面,我可以使用它来测试登录方法 – 下一个函数由按钮调用: function loginFacebook() { var provider = new firebase.auth.FacebookAuthProvider(); var token = “”; firebase.auth().signInWithPopup(provider).then(function (result) { var token = result.credential.accessToken; var user = result.user; alert(“login OK”); user.getToken().then(function (t) { token = t; loginAPI(); }); }).catch(function (error) { var errorCode = error.code; var errorMessage = error.message; alert(errorCode + ” – ” […]

从静态工厂类访问ASP.NET Core DI容器

我创建了一个ASP.NET核心MVC / WebApi站点,该站点有一个RabbitMQ订阅者,基于James Still的博客文章Real-World PubSub Messaging with RabbitMQ 。 在他的文章中,他使用静态类来启动队列订阅者并为排队事件定义事件处理程序。 然后,此静态方法通过静态工厂类实例化事件处理程序类。 using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; using System.Text; namespace NST.Web.MessageProcessing { public static class MessageListener { private static IConnection _connection; private static IModel _channel; public static void Start(string hostName, string userName, string password, int port) { var factory = new ConnectionFactory { HostName = […]

ASP.NET Core通过web.config授权AD组

在我的旧.NET MVC应用程序中,我可以在IIS中启用Windows身份validation并禁用匿名。 然后在我的web.config文件中,我只需要输入: 在.NET Core 2.0中,这将无法正常工作 – 它会正确拒绝匿名,但无论如何都会授权所有用户。 如果我这样做: [Authorize(Roles = “Domain\\MyADGroupToHaveAccess”)] 在我的HomeController ,它可以工作,但我不想在我的项目中对此设置进行硬编码,因为它需要针对其他环境进行更改。 如何使web.config与AD授权一起使用? 或者是否有另一种方法可以在ASP.NET Core中不对此设置进行硬编码?

javascript版本(asp-append-version)如何在ASP.NET Core MVC中工作

似乎新的MVC( 链接 )中不支持动态捆绑,应该使用gulp任务来完成。 MVC支持一些名为asp-append-version新属性,但我没有找到有关它如何工作的任何解释。 我怀疑它正在计算文件内容的一些哈希值,甚至在文件更改后更新它。 有没有关于它是如何工作的文件? 我也想知道它是如何检测文件更改或者它是否只是每次MVC解析剃刀标记时重新计算哈希值。

在web api控制器中使用async / await或task(.net core)

我有一个.net核心API,它有一个控制器,用于构建要返回的聚合对象。 它创建的对象由来自对服务类的3个方法调用的数据组成。 它们彼此独立,可以彼此隔离运行。 目前我正在使用任务来提高该控制器的性能。 当前版本看起来像这样…… [HttpGet] public IActionResult myControllerAction() { var data1 = new sometype1(); var data2 = new sometype2(); var data3 = new List(); var t1 = new Task(() => { data1 = service.getdata1(); }); t1.Start(); var t2 = new Task(() => { data2 = service.getdata2(); }); t2.Start(); var t3 = new Task(() => […]

使用dependency injection注入多个实现

我目前正在开发ASP.NET核心项目,并希望使用内置的dependency injection(DI)function。 好吧,我从界面开始: ICar { string Drive(); } 并希望多次实现ICar界面 public class BMW : ICar { public string Drive(){…}; } public class Jaguar : ICar { public string Drive(){…}; } 并在Startup类中添加以下内容 public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddTransient(); // or services.AddTransient(); } 现在我必须在两个实现之间做出决定,我决定的类将在每个需要ICar实现的构造函数中设置。 但我的想法是,如果请求的控制器是BMWController,那么如果请求JaguarController,则使用BMW实现或使用Jaguar 。 DI对我来说没有意义。 我该如何正确处理这个问题? 为了更好地理解我的问题,请查看此图片: https : //media-www-asp.azureedge.net/media/44907/dependency-injection-golf.png ?raw […]

Blazor – 如何动态创建组件

我想测试是否可以动态创建Blazor组件。 我找不到任何办法这样做。 我已经尝试了一些在此链接上找到的动态内容,但最终没有任何结果。

如何从单件服务调用方法在整个应用程序生命周期中运行

我已经在Net Core中实现了Kafka事件总线作为单例服务。 服务本身在Startup.cs中配置了Autofac。 该服务有一个Listen()方法: public void Listen() { using(var consumer = new Consumer(_config, null, new StringDeserializer(Encoding.UTF8))) { consumer.Subscribe(new string[] { “business-write-topic” }); consumer.OnMessage += (_, msg) => { Console.WriteLine($”Topic: {msg.Topic} Partition: {msg.Partition} Offset: {msg.Offset} {msg.Value}”); consumer.CommitAsync(msg); }; while (true) { consumer.Poll(100); } } } 我的理解是,为了使这个方法在应用程序的生命周期内不断地监听消息,我必须通过某种方式从主机上调用ServicePro,然后获取与主机关联的ServiceProvider,然后检索一个实例。服务,并调用该方法。 我已将Program.cs从默认的Net Core 2.1模板配置为以下内容: public class Program { public static void […]

如何在Web API ASP NET 5中路由外部类库

我在ASP NET 5中创建了一个WEB API,我可以引用外部类库vNext。 我正在开发Visual Studio 2015社区。 在那个库里我有这个控制器: [Route(“api/[controller]”)] public class NovosController : Controller { // GET: api/values [HttpGet] public IEnumerable Get() { return new string[] { “i am”, “an external library” }; } 要在我的Web API引用中添加此库,我必须浏览DLL(一个用于dnxcore50,另一个用于dnx451)。 这是结果: dnx451 dnxcore50 在我的Web API中,我可以从该控制器获取数据,但我无法从URL访问它。 但是如果库在同一个解决方案中,我可以从URL访问它。 例如: 如果是外部库: 本地主机:51000 / API /诺沃斯 没有回报我 但如果库在同一解决方案中: 本地主机:51000 / API /诺沃斯 给我回报“我是一个外部图书馆” […]