【问题标题】:App with no DB: You must call the "WebSecurity.InitializeDatabaseConnection" method before you call any other method of the "WebSecurity" class没有 DB 的应用程序:您必须在调用“WebSecurity”类的任何其他方法之前调用“WebSecurity.InitializeDatabaseConnection”方法
【发布时间】:2013-08-22 09:07:51
【问题描述】:

首先要做的事情。我是一个完整的 OAuth 新手。这将是我的第一次尝试,事情变得越来越棘手......

我正在使用 Durandal 和 Web API 编写单页应用程序。 用户需要能够使用任何社交网络登录。 我无权访问任何数据库,我必须调用我在服务器端使用的未受保护的第 3 方 Web 服务,并且需要使用 OAuth 进行保护。

所以我设法将文件添加到我的解决方案中,该解决方案使用 facebook 控制/按钮生成登录(创建了一个新的 MVC4 Web 应用程序,并手动复制和粘贴了所有与身份验证相关的文件、更新的引导程序等。 .),并且代码似乎大部分都可以工作。

当 facebook 重定向回时

 [AllowAnonymous]
 public ActionResult ExternalLoginCallback(string returnUrl)
 {
     AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(this.Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));
     if (!result.IsSuccessful)
     {
        return this.RedirectToAction("ExternalLoginFailure");
     }

     if (OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false))
     {
        return this.RedirectToLocal(returnUrl);
     }

        //code removed for brevity       ....
  } 

一旦尝试执行以下行,我就会收到指定的错误。

OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false)

我已经从控制器中删除了 [InitializeSimpleMembership] 属性,因为我没有数据库。

如果这是有史以来最愚蠢的问题,请原谅我,但是......

为什么登录失败?我的意思是在那个时候,应用程序不是在尝试登录 Facebook,为什么它需要数据库?或者我是否正确地说我可以删除/替换该代码部分,并在我正在使用的网络服务上调用登录/授权?

【问题讨论】:

    标签: facebook asp.net-web-api oauth-2.0 dotnetopenauth durandal


    【解决方案1】:

    这不是有史以来最愚蠢的问题。 Not by a long shot。但是您会收到错误消息,因为您的成员资格提供程序仍设置为使用SimpleMembershipProvider,而OAuthWebSecurity 将使用默认的成员资格提供程序。如果您不想使用数据库,则必须创建或寻找不同的会员提供商来使用。

    编辑: 我知道您说您无权访问数据库,但如果您可以使用 SQL Compact,您可以坚持使用默认的 SimpleMembershipProvider(查看 Hanselman 的 blog)或 DevArt 有一个 SQLLite providerMemFlex Project 也有一个 RavenDb 提供程序。如果这些都不起作用,我认为您可能只需要编写自己的。

    【讨论】:

    • 哈哈哈.... +1 链接。您知道我可以使用任何其他会员资格提供商吗?
    猜你喜欢
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    相关资源
    最近更新 更多