首页 > 解决方案 > 如何从 Owin 身份验证流程外部访问 OWIN 身份验证选项

问题描述

在我的 OwinStartup.cs 中,我定义了一个身份验证提供程序并设置了它的选项:

var authOptions = new AuthenticationOptions
{
    ClientId = "myId",
    ClientSecret = "verysecret"
};

app.UseMyAwesoneAuthentication(authOptions);

如何AuthenticationOptions从 ASP.Net MVC 控制器中访问身份验证提供程序的对象?我可以访问控制器内部的 OWIN 上下文:

var owinContext = Request.GetOwinContext();

AuthenticationOptions但除了将其设为静态对象外,还没有找到获取提供者对象的方法。

这个可以吗?

编辑:我为什么要这样做?

UseMyAwesomeAuthentication()是我的自定义身份验证提供程序的扩展方法,它将提供程序添加到 Owin IAppBuilder。除了针对第 3 方的标准 OAuth2 身份验证外,提供程序还有一个扩展方法,可以使用在初始身份验证期间获得的访问令牌从第 3 方 API 获取附加数据。

要在 Owin 身份验证过程之外调用第 3 方 API,扩展方法需要访问存储在选项对象中的 ClientID、ClientSecret 和端点 url 数据。

我更改了标题以更清楚地说明我的实际目标是什么。

标签: c#owin

解决方案


推荐阅读