ASP.NET MVC OWIN 和 SignalR - 两个 Startup.cs 文件

2023-11-21

我的项目有问题。

我使用 ASP.NET MVC 和 ASP.NET Identity 2.0 进行身份验证,并将 SignalR 添加到项目中,所以现在我有两个 Startup.cs 文件:

根目录中 MVC 中的第一个

[assembly: OwinStartupAttribute(typeof(MCWeb_3SR.Startup))]
namespace MCWeb_3SR
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);

        }
    }
}

AppCode 文件夹中的 SignalR 之一

[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {

            var heartBeat = GlobalHost.DependencyResolver.Resolve<ITransportHeartbeat>();

            var monitor = new PresenceMonitor(heartBeat);
            monitor.StartMonitoring();


            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();
        }
    }
}

但我收到以下错误

尝试加载应用程序时发生以下错误。 - 在引用启动类型“MCWeb_3SR.Startup”的程序集“MCWeb-3SR”中发现的 OwinStartup 属性与引用启动类型“SignalRChat.ChatStartup”的程序集“App_Code.hszoxs_z”中的属性冲突,因为它们具有相同的FriendlyName“”。删除或重命名其中一个属性,或直接引用所需的类型。 要禁用 OWIN 启动发现,请在 web.config 中添加值为“false”的 appSetting owin:AutomaticAppStartup。 要指定 OWIN 启动程序集、类或方法,请在 web.config 中添加带有完全限定启动类或配置方法名称的 appSetting owin:AppStartup。

我尝试添加

[assembly: OwinStartupAttribute("ProductionConfiguration.st", typeof(MCWeb_3SR.Startup))]

对于第一个,页面运行但身份验证不起作用。

我怎样才能让他们两个一起运行?

Update

using System;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Microsoft.Owin.Security.Google;
using Owin;
using MCWeb_3SR.Models;

namespace MCWeb_3SR
{
    public partial class Startup
    {
        // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app)
        {
            // Configure the db context, user manager and signin manager to use a single instance per request
            app.CreatePerOwinContext(ApplicationDbContext.Create);
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
            app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

            // Enable the application to use a cookie to store information for the signed in user
            // and to use a cookie to temporarily store information about a user logging in with a third party login provider
            // Configure the sign in cookie
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login"),
                Provider = new CookieAuthenticationProvider
                {
                    // Enables the application to validate the security stamp when the user logs in.
                    // This is a security feature which is used when you change a password or add an external login to your account.  
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });            
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
            app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));

            // Enables the application to remember the second login verification factor such as phone or email.
            // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
            // This is similar to the RememberMe option when you log in.
            app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);

            // Uncomment the following lines to enable logging in with third party login providers
            //app.UseMicrosoftAccountAuthentication(
            //    clientId: "",
            //    clientSecret: "");

            //app.UseTwitterAuthentication(
            //   consumerKey: "",
            //   consumerSecret: "");

            //app.UseFacebookAuthentication(
            //   appId: "",
            //   appSecret: "");

            //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            //{
            //    ClientId = "",
            //    ClientSecret = ""
            //});
        }
    }
}

将信号器启动文件移至 App_Start 文件夹并将其重命名为 Startup.SignalR.cs。它应该具有以下内容,请注意,Configure 方法已重命名为ConfigureSignalR:

namespace MCWeb_3SR
{
  public partial class Startup
  {
    public void ConfigureSignalR(IAppBuilder app) {
      var heartBeat = GlobalHost.DependencyResolver.Resolve<ITransportHeartbeat>(); 

      var monitor = new PresenceMonitor(heartBeat); 
      monitor.StartMonitoring(); 


      // Any connection or hub wire up and configuration should go here 
      app.MapSignalR();
    }
  }
}

现在,在项目根目录的 Startup.cs 文件中,在ConfigureAuth(app) 之后添加一个ConfigureSignalR(app) 调用:

[assembly: OwinStartup(typeof(MCWeb_3SR.Startup))]
namespace MCWeb_3SR
{
  public partial class Startup
  {
    public void Configuration(IAppBuilder app) {
      ConfigureAuth(app);
      ConfigureSignalR(app);
    }
  }
}

只要所有 Startup 部分类具有相同的命名空间,这应该可以工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC OWIN 和 SignalR - 两个 Startup.cs 文件 的相关文章

  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 不可勾选的单选按钮与专有的复选框

    从 UI 角度来看 是拥有一组具有取消选中功能的单选按钮更好 还是拥有一组独占的复选框 意味着一次只能选中一个 更好 Update 我没想到对此会有如此负面的反应 如果我给出一个更接近其使用方式的示例 也许会有所帮助 我有一个充满数据绑定内
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 如何在 Clojure 中评估一系列不纯函数?

    如何评估 Clojure 中的 不纯 函数列表 例如 println 1 println 2 println 3 预期输出是 1 2 3 有没有一种方法可以在不使用宏的情况下实现这一目标 就像是 map evaluate fns seq m
  • JavaScript中如何检查字符串是否包含子字符串?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 通常我会期望String contains 方法 但好像没有 检查此问题的合理方法是什么 推出 ECMAScript 6String prototype inc
  • PerRequestLifetimeManager 只能在 HTTP 请求的上下文中使用

    我有一个 MVC 应用程序 它使用 Unity 作为其 IoC 容器 并使用以下方式在我的应用程序中定义了多个服务 PerRequestLifetimeManager container RegisterType
  • 在 pycharm 中创建项目结构的正确方法是什么?

    我是 python 新手 不知道如何以正确的方式组织项目结构 因此所有自动导入都可以在 pycharm 中工作 这就是我目前的结构 在 PublisherSubscriberTest pycharm 生成此导入 from Rabbit Ra
  • 从库中查找 argc 和 argv

    我如何找到一个程序argc and argv来自共享对象 我正在用 C 编写一个库 将通过以下方式加载LD PRELOAD 我可以通过两种不同的方式找到堆栈 Read rsp通过内联 asm call Read proc
  • 为什么java rmi一直连接到127.0.1.1。当ip是192.168.X.X时?

    我有一个 java rmi 应用程序 我只是这样做 Client Registry registry LocateRegistry getRegistry localhost costApi CostApi registry lookup
  • 如果已安装,则无法重新运行 Java JPackage 安装程序,第二次只是退出而不发出警告

    无法重新运行JPackage安装程序如果已经安装 则第二次即可似乎退出没有警告 这在 Windows 上是正确的行为吗 你可能会问我为什么要这么做 就我而言 我正在尝试为我的 Java 应用程序构建 JPackage 安装程序 因此我正在构
  • 如何在 C# 中自动递增数字?

    我正在使用 C 2008 Windows 窗体应用程序 我的项目中有一个TextBox控制 因为我想为样本 s00 自动生成数字 接下来当我再次返回表单时 它应该像 s01 s02 s03 这样递增 请帮我 很容易 保留一个变量来保留当前数
  • ASP.NET MVC 中的脚本和 CSS 注册助手?

    我尝试使用 ASP NET MVC 一段时间 然后遇到一个问题 我不想将所有 js 和 css 包含在母版页中 但是如何从我的特定视图将其注册到母版页的头部 默认母版页模板包括用于头部的内容占位符 如果没有 您可以轻松添加一个
  • 通用方法 - 无法将类型“string”隐式转换为 T

    可能是一个简单的问题 我有一个界面 public interface ISanitizer T Sanitize
  • Jenkins - 将构建推广到不同的环境

    我希望获得一些关于通过其环境促进构建的最佳方式的指导 我们有 3 个环境 DEV STAGING PROD DEV Jenkins 构建在持续集成设置中运行 当代码签入到 subversion 时 Jenkins 将运行新的构建 清理 编译
  • 实例化一个特质意味着什么?

    我是 Scala 新手 在 O Reilly 的 Scala 编程 一书中 作者展示了一些实例化特征的代码 鉴于特征在某种程度上类似于 Java 中的接口 尽管我知道特征是作为字节代码中的类实现的 实例化特征意味着什么 以及适当的用例 设计
  • 从公钥正确创建 RSACryptoServiceProvider

    我目前正在尝试创建一个RSACryptoServiceProvider仅来自解码的 PEM 文件的对象 经过几天的搜索 我确实设法找到了一个可行的解决方案 但它还不是一个可以投入生产的解决方案 简而言之 为了创建一个RSACryptoSer
  • 从 ASP.NET MVC 中的现有数据库生成种子代码

    我想知道是否有人遇到过类似的挑战 我有一个数据库 其中包含一些从 Excel 文件进行 ETL 处理 导入和转换 的数据 在我的 ASP NET MVC Web 应用程序中 我使用 Code First 方法并在每次数据库更改时删除 创建
  • 如何使 pyplot.subplots 内的图像更大

    我需要在网格中显示20张图像 我的代码如下 def plot matric demo img nrows ncols fig ax plt subplots nrows nrows ncols ncols cur index 0 for r
  • Python 列表字典中的项目计数

    我有一个列表字典 我想为其添加一个值到特定列表 我有以下列表词典 d a 4 Adam 2 b 3 John 4 c 4 Adam 3 d 4 Bill 3 e 4 Bob f 4 Joe g 4 Bill 我想本质上计算出名字的数量并返回
  • 使用scipy高斯核密度估计计算CDF逆

    The gaussian kde函数于scipy stats有一个功能evaluate可以返回输入点的 PDF 值 我正在尝试使用gaussian kde估计逆 CDF 其动机是生成一些输入数据的蒙特卡罗实现 这些数据的统计分布是使用 KD
  • 使用 Pandoc 将 Markdown 转换为 PDF 时使用 CSS

    我正在 OS X 上尝试 Pandoc 迄今为止的结果令人印象深刻 然而 一个阻碍性问题是让 CSS 样式在内联代码示例上工作 我正在从 Markdown 转换为 PDF 我的源代码中有这个字符串 Create a simple HTML
  • 如何找到给定半径内最近的城市?

    您是否知道一些实用程序或网站 我可以在其中提供美国城市 州和以英里为单位的径向距离作为输入 并且它会返回该半径内的所有城市 Thanks 我是这样做的 您可以获得城市 街道 邮政编码及其纬度和经度的列表 我一时想不起我们是从哪里得到的 ed
  • ASP.NET MVC OWIN 和 SignalR - 两个 Startup.cs 文件

    我的项目有问题 我使用 ASP NET MVC 和 ASP NET Identity 2 0 进行身份验证 并将 SignalR 添加到项目中 所以现在我有两个 Startup cs 文件 根目录中 MVC 中的第一个 assembly O