Questions tagged «owin»

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

9
找不到IAppBuilder的类型或名称空间(缺少使用程序集指令的指令)
我正在使用Asp.Net MVC 4应用程序,在其中使用SignalR 2.0.1,并使用Owin Startup类对其进行了映射,并且起初运行良好。 突然,当我尝试重建应用程序时,它说IAppbuilder找不到类型名称空间。 以下是我的入门班 using Microsoft.Owin; using Owin; using WhiteBoardApp; namespace WhiteBoardApp { public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } } 我也安装了Owin软件包,由于某些原因,我找不到Owin Startup类,所以我只添加了一个普通类并包含了所有需要的引用。我可以知道我在哪里犯错

7
没有OWIN身份验证管理器与此请求关联
在尝试对我的Web Api项目启用owin和AspNet身份(在VS 2013 + .Net 4.5.1中)后,我在每个有效或无效(对不存在的控制器的请求)请求中收到以下错误: <Error> <Message>An error has occurred.</Message> <ExceptionMessage> No OWIN authentication manager is associated with the request. </ExceptionMessage> <ExceptionType>System.InvalidOperationException</ExceptionType> <StackTrace> at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.SuppressDefaultAuthenticationChallenges(HttpRequestMessage request) at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.<SendAsync>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() …

3
无法从apicontroller中的OwinContext获取UserManager
我正在跟踪一个Microsoft示例,以使用Identity 2.0.0实现电子邮件验证。 我被困在这部分 public ApplicationUserManager UserManager { get { return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); } private set { _userManager = value; } } 这可以在ApiController中工作,controller但HttpContext不包含任何GetOwinContext方法。 所以我尝试了,HttpContext.Current.GetOwinContext()但是该方法GetUserManager不存在。 我找不到UserManager在Startup.Auth.cs中构建I的方法 // 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 role manager to …

17
OWIN的GetExternalLoginInfoAsync始终返回null
我创建了一个新的MVC5 Web应用程序,当我尝试使用Google或Facebook登录时,会调用中的ExternalLoginCallbackAction AccountController,但是GetExternalLoginInfoAsync()始终返回null: var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return RedirectToAction("Login"); } 因为它始终为null,所以它仅重定向回到登录页面,然后过程重新开始。我怎样才能解决这个问题?

8
Owin Twitter登录-根据验证步骤,远程证书无效
我最近尝试使用Twitter登录时开始出现此错误-为什么? Stack Trace: [AuthenticationException: The remote certificate is invalid according to the validation procedure.] System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) +230 System.Net.PooledStream.EndWrite(IAsyncResult asyncResult) +13 System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) +123 [WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.] System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) +6432446 System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) +64

2
一起使用承载令牌和cookie身份验证
我有一个单页应用程序-或多或少基于MVC5 SPA模板-使用承载令牌进行身份验证。 该站点还具有几个需要保护的常规MVC页面,但使用cookie身份验证。 在Startup.Auth中,我可以启用两种授权类型: app.UseCookieAuthentication(new CookieAuthenticationOptions()); app.UseOAuthBearerTokens(OAuthOptions); 但是,这似乎有一个副作用,就是每当从SPA发送AJAX请求时,它都会在标头和cookie中发送承载令牌。 而我真正想要的行为是仅将承载令牌用于WebAPI调用,仅将cookie用于MVC调用。 我还希望在未经授权时将MVC调用重定向到登录页面(设置为CookieAuthenticationOption),但是显然,我不希望在进行API调用时发生这种情况。 是否可以通过某种方法在一个应用程序中进行这种混合模式身份验证?也许通过路径/路由过滤器?

5
如何在Microsoft.AspNet.Identity.EntityFramework.IdentityUser中更改ID的类型
(ASP.NET MVC 5,EF6,VS2013) 我试图弄清楚如何将“ Id”字段的类型从字符串更改为int类型: Microsoft.AspNet.Identity.EntityFramework.IdentityUser 为了使新用户帐户与整数ID而不是GUID相关联。但是,这似乎比在派生的用户类中简单地添加一个类型为int的新Id属性要复杂得多。看一下这个方法签名: (来自程序集Microsoft.AspNet.Identity.Core.dll) public class UserManager<TUser> : IDisposable where TUser : global::Microsoft.AspNet.Identity.IUser { ... public virtual Task<IdentityResult> AddLoginAsync(string userId, UserLoginInfo login); ... } 因此,似乎还有其他方法已植入ASP.NET身份框架中,这些方法要求userId为字符串。我还需要重新实现这些类吗? 关于为什么我不想在用户表中存储ID的GUID的解释: -将有其他表通过外键将数据与用户表相关联。(当用户将内容保存在网站上时。)我没有理由使用较大的字段类型并花费额外的数据库空间,而没有明显的优势。(我知道还有其他关于使用GUID和int id的文章,但是似乎很多人建议int id更快,使用更少的空间,这仍然让我感到疑惑。) -我计划公开一个宁静的端点,以允许用户检索有关特定用户的数据。我认为: /users/123/name 比...干净 /users/{af54c891-69ba-4ddf-8cb6-00d368e58d77}/name 有谁知道ASP.NET团队为何决定以这种方式实现ID?在尝试将其更改为int类型时,我是不是目光短浅?(也许我缺少一些好处。) 谢谢... -本

11
ASP.NET MVC5 OWIN Facebook身份验证突然不起作用
更新2017! 我发布原始问题时遇到的问题与Facebook最近迫使所有人都使用其API版本2.3时所做的更改无关。有关该特定问题的解决方案,请参见下面的sammy34的答案。/ oauth / access_token端点的2.3版现在返回JSON而不是表单编码的值 由于历史原因,这是我最初的问题/问题: 我有一个MVC5 Web应用程序,该应用程序使用通过Facebook和Google进行身份验证的内置支持。几个月前构建此应用程序时,我们遵循了本教程:http : //www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and -google-oauth2-和-openid-sign-on,一切正常。 现在,突然之间,Facebook身份验证完全停止了工作。Google身份验证仍然有效。 问题描述:我们单击链接以使用Facebook进行连接,如果我们不想允许我们的Facebook应用程序访问我们的个人资料,则会重定向到Facebook,并在其中提示您。当我们单击“确定”时,我们将被重定向回我们的站点,但是没有登录,我们只是在登录屏幕上结束了。 我已经在调试模式下完成了此过程,并且按照上述教程在我的帐户控制器中获得了此ActionResult: // GET: /Account/ExternalLoginCallback [AllowAnonymous] public async Task<ActionResult> ExternalLoginCallback(string returnUrl) { var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return RedirectToAction("Login"); } ............ 单步执行代码时以及从Facebook返回时,loginInfo对象始终为NULL,这将导致用户被重定向回登录名。 为了了解幕后实际发生的情况,我安装了Fiddler并监视了HTTP流量。我发现,在Facebook权限对话框中单击“确定”后,Facebook使用以下URL重定向回我们的应用程序: https://localhost/signin-facebook?code=<access-token> 这个URL不是一个实际的文件,可能是由我猜测在此OWIN框架中内置的某些控制器/处理程序处理的。它很可能使用给定的代码连接回Facebook,以查询有关尝试登录的用户的信息。现在,问题是我们没有这样做,而是被重定向到: /Account/ExternalLoginCallback?error=access_denied 我确定Facebook正在做某件事,也就是说,它没有向我们提供用户数据,而是通过此错误消息将我们重定向回去。 这会导致AuthenticationManager.GetExternalLoginInfoAsync();失败,并始终返回NULL。 我完全没有主意。据我们所知,我们并没有做出任何改变。 我尝试创建一个新的Facebook应用程序,尝试再次按照该教程进行操作,但是我始终遇到相同的问题。 任何想法欢迎! 更新! 好吧,这让我发疯了!现在,我已经手动完成了执行身份验证所需的步骤,当我这样做时,一切都很好。为什么在使用MVC5 …
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.