Questions tagged «owin»

.NET的开放式Web接口,描述HTTP管道中的组件应如何通信。

21
OwinStartup不触发
我的OwinStartup配置代码可以正常运行,然后停止工作。不幸的是,我不确定到底要怎么做才能使其停止工作,并且很难解决。 为了确保基本知识,我仔细检查了一下以确保 [assembly:OwinStartup(typeof(WebApplication.Startup))] 属性分配正确,并确保我没有将owin:AutomaticAppStartup的appSetting设置为false,所以我将其中之一设置为true以确保安全,因为之前没有任何设置。 <add key="owin:AutomaticAppStartup" value="true" /> 我还尝试专门调出appSetting: <add key="owin:appStartup" value="WebApplication.Startup" /> 在它停止工作之前,我将Microsoft.Owin.Security NuGet软件包升级到2.0.2,因此我尝试将它们还原到2.0.1(这很痛苦),但是它没有任何改变。我在项目上安装了WebActivator,并正在使用它来引导其他内容,但是我已经在新的WebApplication模板上对其进行了测试,并且该模板可以在其中工作,因此我认为不是罪魁祸首。 我还尝试删除了Startup类,并使用Visual Studio通过“添加新项”中的OWIN Startup类类型添加了一个新类,但没有一个被调用。接下来,我尝试添加第二个Startup类,因为我知道如果定义了多个OwinStartup属性,它将引发一个异常,但是在那里不会引发任何异常。 不知道还有什么尝试。有什么想法吗? 更新资料 事实证明,当我使用Resharper删除未使用的引用时,它删除了对Microsoft.Owin.Host.SystemWeb的引用。

4
如何用简单的词语和用法解释片假名和OWIN?
我已经阅读了许多有关OWIN和Katana项目的文章,但我无法了解它的全部情况。 对于使用ASP.NET的普通Web开发人员: OWIN到底是什么,它可以解决哪些问题(简单来说)。它与IIS有什么关系? OWIN是否可以替代IIS?如果没有,OWIN最适合什么情况? OWIN如何在我的日常工作项目中为我提供帮助? OWIN如何帮助我进行自我完善项目?
337 asp.net  iis  owin  katana 

5
我什么时候应该使用OWIN Katana?
我是OWIN和Katana的新手。我真的不明白为什么我应该使用OWIN,而我却可以使用IIS。为简单起见,我的问题是:如果我跳过学习OWIN并将IIS用于我的网站,将会失去什么? 我用谷歌搜索,但没有简单的解释。有一些信息,在这里,但他们使用的一些术语的短语,所以我无法理解这一点。

19
缺少OWIN启动类
我收到此错误,因为我的项目无法找到OWIN启动类的引用。我什至通过Nuget安装了所有OWIN参考软件包,仍然遇到相同的问题。我正在使用Visual Studio 2012和MVC4。 尝试加载应用程序时发生以下错误。 找不到包含OwinStartupAttribute的程序集。 找不到包含Startup或[AssemblyName] .Startup类的程序集。要禁用OWIN启动发现,请在web.config中添加值为“ false”的appSetting owin:AutomaticAppStartup。要指定OWIN启动程序集,类或方法,请在web.config中添加带有完全限定的启动类或配置方法名称的appSetting owin:AppStartup。

3
如果我使用OWIN Startup.cs类并将所有配置移到那里,是否需要Global.asax.cs文件?
举例来说,在一个由带有个人帐户的MVC模板制作的全新ASP.NET MVC 5应用程序中,如果我删除Global.asax.cs该类并将其配置代码移动到Startup.cs Configuration()方法如下,会有什么弊端? public partial class Startup { public void Configuration(IAppBuilder app) { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ConfigureAuth(app); } } 对我来说,好处是,当将ASP.NET 4应用程序升级到ASP.NET 5并使用必须在Startup.cs类中配置的组件时,我没有在似乎相关的两个不同类中进行依赖项注入和其他配置。进行启动和配置。

15
未经授权的webapi调用返回登录页面而不是401
如何配置我的mvc / webapi项目,以使从剃刀视图调用的webapi方法在未经授权时不返回登录页面? 它是一个MVC5应用程序,还具有用于通过javascript进行调用的WebApi控制器。 下面的两种方法 [Route("api/home/LatestProblems")] [HttpGet()] public List<vmLatestProblems> LatestProblems() { // Something here } [Route("api/home/myLatestProblems")] [HttpGet()] [Authorize(Roles = "Member")] public List<vmLatestProblems> mylatestproblems() { // Something there } 通过以下角度代码调用: angular.module('appWorship').controller('latest', ['$scope', '$http', function ($scope,$http) { var urlBase = baseurl + '/api/home/LatestProblems'; $http.get(urlBase).success(function (data) { $scope.data = data; }).error(function (data) { …

3
将ASP.NET MVC5身份验证添加到现有项目
我在网络上看到过很多类似的页面,但是大多数页面使用的是新项目而不是现有的项目,或者没有必要的功能。因此,我有一个现有MVC 5项目,希望将ASP.NET MVC5 Identity与登录,电子邮件确认和密码重置功能集成在一起。 除此之外,我还需要在数据库上创建所有必要的表,即用户,角色,组等。(我在项目中使用EF Code First)。是否有符合这些需求的文章或样品?任何建议,将不胜感激。提前致谢...

9
ASP.NET_SessionId + OWIN Cookies不会发送到浏览器
使用Owin Cookie身份验证存在一个奇怪的问题。 当我启动IIS服务器时,身份验证在IE / Firefox和Chrome上运行正常。 我开始使用身份验证进行一些测试,然后在不同的平台上登录,但遇到了一个奇怪的错误。有时,Owin框架/ IIS不会向浏览器发送任何cookie。我将输入正确的用户名和密码,代码可以运行,但根本不会将cookie发送到浏览器。如果我重新启动服务器,它开始工作,那么在某个时候,我将尝试登录,并且cookie再次停止发送。单步执行代码不会执行任何操作,也不会引发任何错误。 app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationMode = AuthenticationMode.Active, CookieHttpOnly = true, AuthenticationType = "ABC", LoginPath = new PathString("/Account/Login"), CookiePath = "/", CookieName = "ABC", Provider = new CookieAuthenticationProvider { OnApplyRedirect = ctx => { if (!IsAjaxRequest(ctx.Request)) { ctx.Response.Redirect(ctx.RedirectUri); } } } }); 在我的登录过程中,我有以下代码: IAuthenticationManager authenticationManager …

13
找不到Request.GetOwinContext
我一直在寻找一个小时,试图弄清楚为什么它不起作用。 我有一个带有WebAPI的ASP.Net MVC 5应用程序。我正在尝试获取Request.GetOwinContext()。Authentication,但是我似乎找不到如何包含GetOwinContext。这是我的代码: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Mvc; using System.Web.Security; using TaskPro.Models; namespace TaskPro.Controllers.api { public class AccountController : ApiController { [HttpPost] [AllowAnonymous] public ReturnStatus Login(LoginViewModel model) { if (ModelState.IsValid) { var ctx = Request.GetOwinContext(); // <-- Can't find this …
101 c#  asp.net-web-api  owin 

17
找不到包含OwinStartupAttribute错误的程序集
这个错误 尝试加载应用程序时发生以下错误。-找不到包含OwinStartupAttribute的程序集。-找不到给定的类型或方法'false'。尝试指定程序集。要禁用OWIN启动发现,请在web.config中添加值为“ false”的appSetting owin:AutomaticAppStartup。要指定OWIN启动程序集,类或方法,请在web.config中添加带有完全限定的启动类或配置方法名称的appSetting owin:AppStartup。 出现在我的屏幕上,这是历史上创建的最丑陋的错误页面。 我尝试通过在配置中插入owin:AutomaticAppStartup来遵循页面上的指示。 <appSettings > <add key="owin:AppStartup" value="false"></add> </appSettings> 这没有解决问题。有什么建议么?

4
OWIN安全性-如何实施OAuth2刷新令牌
我正在使用Visual Studio 2013随附的Web Api 2模板,该模板具有一些OWIN中间件来进行用户身份验证等。 在OAuthAuthorizationServerOptionsI中,我注意到OAuth2服务器已设置为发放在14天内到期的令牌 OAuthOptions = new OAuthAuthorizationServerOptions { TokenEndpointPath = new PathString("/api/token"), Provider = new ApplicationOAuthProvider(PublicClientId,UserManagerFactory) , AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), AllowInsecureHttp = true }; 这不适合我的最新项目。我想分发短暂的bearer_tokens,可以使用refresh_token 我已经进行了大量谷歌搜索,找不到任何有用的信息。 这就是我设法取得的成就。我现在已经达到“现在就做WTF”这一点。 我写了一个根据类的属性RefreshTokenProvider实现的:IAuthenticationTokenProviderRefreshTokenProviderOAuthAuthorizationServerOptions public class SimpleRefreshTokenProvider : IAuthenticationTokenProvider { private static ConcurrentDictionary<string, AuthenticationTicket> _refreshTokens = new ConcurrentDictionary<string, AuthenticationTicket>(); …

7
重命名ASP.NET MVC项目时出错
我已经复制了以前的项目并将其重命名。一旦我成功重命名了所有名称空间,它就会正确构建。运行应用程序时出现以下错误: The following errors occurred while attempting to load the app. - The OwinStartup attribute discovered in assembly 'User Manager Interface' referencing startup type 'User_Manager_Interface.Startup' conflicts with the attribute in assembly 'Service Monitor Web Interface' referencing startup type 'Service_Monitor_Web_Interface.Startup' because they have the same FriendlyName ''. Remove or rename one …

1
使用OWIN身份从多个API客户端注册Web API 2外部登录
我想要以下架构(在此示例中,我组成了产品名称): 在一台服务器上运行的Web API 2应用程序 http://api.prettypictures.com 在另一台服务器上运行的MVC 5客户端应用程序 http://www.webpics.com 我希望www.webpics.com客户端应用程序使用Pretty Pictures API来: 使用用户名和密码注册新帐户 在Facebook / Google / Twitter / Microsoft注册新帐户 登录 检索图片 以上所有工作,除了在Facebook,Google等处注册外部帐户外。 我无法计算出正确的流程来从API的单独客户端用户创建外部帐户。 我研究了身份验证流程中可用的大多数文档,例如: 我已经阅读了关于OWIN中新Identity模式的几乎所有内容。 我已经检查了Visual Studio 2013中的SPA模板。该模板演示了如何执行我所需的大部分操作,但仅当客户端和API位于同一主机上时才执行。如果我希望多个客户端访问我的API并能够让用户通过Google等进行注册,则无法正常工作,据我所知,OWIN身份验证流程中断了。 到目前为止的流程如下: 用户浏览到www.webpics.com/Login www.webpics.com调用api.prettypictures.com/Account/ExternalLogins(用RETURNURL一套回去在回调www.webpics.com),并显示最终链接到用户 用户点击“ Google” 浏览器使用提供者的名称等重定向到api.prettypictures.com/Account/ExternalLogin。 API的ExternalLogin操作实例化了对google.com的挑战 浏览器被重定向到google.com 用户输入其用户名和密码(如果尚未登录google.com) google.com现在提供安全检查:“ api.prettypictures.com”希望访问您的电子邮件地址,姓名,妻子,子女等。可以吗? 用户单击“是”,并使用Google设置的cookie带回到api.prettypictures.com/Account/ExternalLogin。 这就是我卡住的地方。接下来应该发生的是,应该以某种方式通知客户端应用程序用户已成功通过google.com进行身份验证,并获得一次性使用访问代码,以稍后交换访问令牌。客户端应用应有机会(如有必要)提示用户输入用户名,以与其google.com登录名相关联。 我不知道该怎么做。 实际上,在这一点上,浏览器最终在Google回调后位于api.prettypictures.com/Account/ExternalLogin端点。该API已针对Google登录,但客户端不知道如何处理。我应该将该Cookie传送回www.webpics.com吗? 在SPA应用程序中,这是通过AJAX完成的,并且google.com将返回令牌作为URL片段,并且由于它们都位于一个域中,因此效果很好。但是,这与拥有多个客户端可以完全使用的“ API”的许多观点不符。 救命!

4
找不到OWIN HttpListener
当我尝试开始时: WebApp.Start<SrvcHst>(new StartOptions { Port = 9956, ServerFactory = "Microsoft.Owin.Host.HttpListener" }); 我得到以下异常。可能是根本原因? System.MissingMemberException was caught HResult=-2146233070 Message=The server factory could not be located for the given input: Microsoft.Owin.Host.HttpListener Source=Microsoft.Owin.Hosting StackTrace: at Microsoft.Owin.Hosting.Engine.HostingEngine.ResolveServerFactory(StartContext context) at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context) at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options) at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options) at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options) at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options) …

8
尝试通过邮递员调用OWIN OAuth安全的Web Api来获取JWT时,出现“错误”:“ unsupported_grant_type”
我已关注本文以实现OAuth授权服务器。但是,当我使用邮递员获取令牌时,响应中出现错误: “错误”:“ unsupported_grant_type” 我读到某处需要使用来发布Postman中的数据Content-type:application/x-www-form-urlencoded。我已经在Postman中准备了所需的设置: 但是我的标题是这样的: 这是我的代码 public class CustomOAuthProvider : OAuthAuthorizationServerProvider { public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context) { context.Validated(); return Task.FromResult<object>(null); } public override Task MatchEndpoint(OAuthMatchEndpointContext context) { if (context.OwinContext.Request.Method == "OPTIONS" && context.IsTokenEndpoint) { context.OwinContext.Response.Headers.Add("Access-Control-Allow-Methods", new[] { "POST" }); context.OwinContext.Response.Headers.Add("Access-Control-Allow-Headers", new[] { "accept", "authorization", "content-type" }); context.OwinContext.Response.StatusCode = 200; …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.