【问题标题】:Stuck using Microsoft.Web.WebPages.OAuth.OAuthWebSecurity in an MVC application在 MVC 应用程序中使用 Microsoft.Web.WebPages.OAuth.OAuthWebSecurity 卡住了
【发布时间】:2012-10-04 15:01:06
【问题描述】:

我不理解 Microsoft.Web.WebPages.OAuth 命名空间中的一些代码,特别是 OAuthWebSecurity 类。

这里是这个方法:

internal static void RequestAuthenticationCore(HttpContextBase context, 
    string provider, string returnUrl)
{
    IAuthenticationClient client = GetOAuthClient(provider);
    var securityManager = new OpenAuthSecurityManager(context, 
        client, OAuthDataProvider);
    securityManager.RequestAuthentication(returnUrl);
}

第一行很好 => 获取提供者数据,用于此身份验证请求。让我们假设这是TwitterClient(..)

现在,我们需要创建一个 SecurityManager 类 .. 它接受三个参数。第三个参数是什么? OAuthDataProvider?这被定义为静态的,在这里:

internal static IOpenAuthDataProvider OAuthDataProvider =
    new WebPagesOAuthDataProvider();

这会创建一个WebPagesOAuthDataProvider。这是我的问题。这是什么?为什么它必须与ExtendedMembershipProvider 紧密耦合?什么是ExtendedMembershipProvider?为什么需要这个?

在我的 Web 应用程序中,我尝试使用 RavenDb 数据库以及我自己的自定义主体和自定义身份。与 ASP.NET 附带的 MembershipSimpleMembership 无关。

那个类是什么,为什么要使用它等等?它的目的是什么?这是 DNOA 需要的吗?为什么?

【问题讨论】:

    标签: c# asp.net asp.net-mvc dotnetopenauth


    【解决方案1】:

    我没有写你提到的代码,所以我在这里可能是错的,但我相信你提到的 ASP.NET 代码确实绑定到他们的 Membership 提供程序。

    如果您不使用 ASP.NET 成员资格提供程序,我建议您直接使用 DotNetOpenAuth(而不是通过 Microsoft 添加的外观),它没有如此紧密的耦合。

    【讨论】:

    • 但是他们的代码最终调用了 DNOA 代码,特别是这个 => github.com/DotNetOpenAuth/DotNetOpenAuth/blob/master/src/…(我也在你的 DNOA 房间的 JabbR 上:P)
    • 是的,他们的代码确实调用了 DNOA。我的观点是,您可以这样做,但如果您想避免这种情况,则无需与会员资格相关联。
    【解决方案2】:

    如果您不需要 ASP.NET 会员系统在您的系统上提供本地登录帐户(存储在本地会员数据库中的帐户),我不会走使用任何基于 WebMatrix 的位(WebSecurity / OAuthWebSecurity)的路线)。

    它们实际上使与 DNOA 的交互变得更加困难,并且或多或少地同时隐藏了所有有趣的部分......

    由于我需要本地帐户,我最终将所有源代码提取到我的源代码中,然后从那里编辑它(我这样做还有其他原因,不仅仅是为了丰富与 DNOA 的交互)。

    如果您需要本地帐户 - 使用 WebMatrix 如果您不需要本地帐户 - 直接使用 DNOA。

    【讨论】:

    • 专业提示 @Jammer:WebMatrix websecurity/oauthwebsecurity 等东西是对 DNOA 和 SimpleMembership 的抽象。 对简单的会员资格感到叹息
    • 我就是这么说的……不知道你在说什么……??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多