gpt4 book ai didi

asp.net-mvc - 从 MVC 应用程序中的 ClaimsPrincipal 获取 bootStrapContext token

转载 作者:行者123 更新时间:2023-12-04 18:01:32 27 4
gpt4 key购买 nike

我正在 MVC 中开发应用程序,我想使用 Azure Active Directory 对我的用户进行身份验证。

为了实现这一目标,我使用应用程序 URL 在 Azure Active Directory 中创建了应用程序,并为应用程序分配了权限。

我还配置了我的应用程序以使用 Azure AD 身份验证。现在,当我尝试访问 bootstrapContext.Token 时,它始终为 null。

我正在使用下面的方法来访问 bootstrapContext。

var bootstrapContext = ClaimsPrincipal.Current.Identities.First().BootstrapContext as System.IdentityModel.Tokens.BootstrapContext;

string userAccessToken = bootstrapContext.Token;

我对此进行了搜索,发现我必须更新我的 web.config。所以我更新如下

<system.identityModel>
<identityConfiguration saveBootstrapContext="true">
<system.identityModel>

我的主要目标是将 UserAssertion 用于 authContext.AcquireToken 方法。并且 UserAssertion 需要 bootstrapContext.Token。

根据 MvdD 的建议,我也尝试过以下操作

app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = metadataUri,
TokenValidationParameters = new TokenValidationParameters
{
SaveSigninToken = true
}
});

但是现在,我遇到了以下错误

AADSTS50027: Invalid JWT token. AADSTS50027: Invalid JWT token. Token format not valid.

Trace ID: 0d052707-9aaf-4037-b7c9-4c4aa7cfcc72

Correlation ID: 9a00573b-cfe9-4665-ab81-c0a03eace9d8

Timestamp: 2016-02-08 05:18:01Z

有人可以帮我解决这个问题吗?

最佳答案

从您的问题中并不清楚您正在使用哪种协议(protocol)或哪些库。

如果您使用 Katana 中间件,则应在相应的 AuthenticationOptions 类中设置 SaveSigninToken 属性。对于 WS-Federation 协议(protocol),它看起来像这样:app.UseWsFederationAuthentication(

app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = metadataUri,
TokenValidationParameters = new TokenValidationParameters
{
SaveSigninToken = true
}
}
);

如果您使用System.IdentityModel,则需要设置SaveBootstrapContext IdentityConfiguration 对象上的属性。

关于asp.net-mvc - 从 MVC 应用程序中的 ClaimsPrincipal 获取 bootStrapContext token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com